Skip to content

Commit

Permalink
Remove trailing slash in proxyTo and externalUrl
Browse files Browse the repository at this point in the history
Revert handling multiple trailing slashes in url
  • Loading branch information
prakhar10 committed Jan 20, 2025
1 parent 64dcbd5 commit ea5058d
Show file tree
Hide file tree
Showing 2 changed files with 38 additions and 3 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -94,19 +94,23 @@ public void activateBackend(String backendName)
@Override
public ProxyBackendConfiguration addBackend(ProxyBackendConfiguration backend)
{
dao.create(backend.getName(), backend.getRoutingGroup(), backend.getProxyTo(), backend.getExternalUrl(), backend.isActive());
String backendProxyTo = removeTrailingSlash(backend.getProxyTo());
String backendExternalUrl = removeTrailingSlash(backend.getExternalUrl());
dao.create(backend.getName(), backend.getRoutingGroup(), backendProxyTo, backendExternalUrl, backend.isActive());
return backend;
}

@Override
public ProxyBackendConfiguration updateBackend(ProxyBackendConfiguration backend)
{
String backendProxyTo = removeTrailingSlash(backend.getProxyTo());
String backendExternalUrl = removeTrailingSlash(backend.getExternalUrl());
GatewayBackend model = dao.findFirstByName(backend.getName());
if (model == null) {
dao.create(backend.getName(), backend.getRoutingGroup(), backend.getProxyTo(), backend.getExternalUrl(), backend.isActive());
dao.create(backend.getName(), backend.getRoutingGroup(), backendProxyTo, backendExternalUrl, backend.isActive());
}
else {
dao.update(backend.getName(), backend.getRoutingGroup(), backend.getProxyTo(), backend.getExternalUrl(), backend.isActive());
dao.update(backend.getName(), backend.getRoutingGroup(), backendProxyTo, backendExternalUrl, backend.isActive());
}
return backend;
}
Expand All @@ -130,4 +134,9 @@ private static List<ProxyBackendConfiguration> upcast(List<GatewayBackend> gatew
}
return proxyBackendConfigurations;
}

private static String removeTrailingSlash(String url)
{
return url.replaceAll("/$", "");
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -83,4 +83,30 @@ void testGatewayManager()
.extracting(ProxyBackendConfiguration::getRoutingGroup)
.containsExactly("adhoc");
}

@Test
void testRemoveTrailingSlashInUrl()
{
ProxyBackendConfiguration etl = new ProxyBackendConfiguration();
etl.setActive(false);
etl.setRoutingGroup("etl");
etl.setName("new-etl1");
etl.setProxyTo("https://etl1.trino.gateway.io:443/");
etl.setExternalUrl("https://etl1.trino.gateway.io:443/");
haGatewayManager.addBackend(etl);

assertThat(haGatewayManager.getBackendByName("new-etl1").map(ProxyBackendConfiguration::getProxyTo).orElseThrow()).isEqualTo("https://etl1.trino.gateway.io:443");
assertThat(haGatewayManager.getBackendByName("new-etl1").map(ProxyBackendConfiguration::getExternalUrl).orElseThrow()).isEqualTo("https://etl1.trino.gateway.io:443");

ProxyBackendConfiguration etl2 = new ProxyBackendConfiguration();
etl2.setActive(false);
etl2.setRoutingGroup("etl2");
etl2.setName("new-etl1");
etl2.setProxyTo("https://etl2.trino.gateway.io:443/");
etl2.setExternalUrl("https://etl2.trino.gateway.io:443/");
haGatewayManager.updateBackend(etl2);

assertThat(haGatewayManager.getBackendByName("new-etl1").map(ProxyBackendConfiguration::getProxyTo).orElseThrow()).isEqualTo("https://etl2.trino.gateway.io:443");
assertThat(haGatewayManager.getBackendByName("new-etl1").map(ProxyBackendConfiguration::getExternalUrl).orElseThrow()).isEqualTo("https://etl2.trino.gateway.io:443");
}
}

0 comments on commit ea5058d

Please sign in to comment.