From 3846f34583d71b4a9043b2c77d3520692dcb78bc Mon Sep 17 00:00:00 2001 From: AFaust Date: Fri, 28 Feb 2025 11:01:54 +0100 Subject: [PATCH] Forced route URL is optional --- .../web/KeycloakAuthenticationFilter.java | 37 ++++++++++--------- 1 file changed, 20 insertions(+), 17 deletions(-) diff --git a/share/src/main/java/de/acosix/alfresco/keycloak/share/web/KeycloakAuthenticationFilter.java b/share/src/main/java/de/acosix/alfresco/keycloak/share/web/KeycloakAuthenticationFilter.java index ae0481a..580b67d 100644 --- a/share/src/main/java/de/acosix/alfresco/keycloak/share/web/KeycloakAuthenticationFilter.java +++ b/share/src/main/java/de/acosix/alfresco/keycloak/share/web/KeycloakAuthenticationFilter.java @@ -529,30 +529,34 @@ public class KeycloakAuthenticationFilter implements DependencyInjectedFilter, I final ExtendedAdapterConfig adapterConfiguration = keycloakAdapterConfig.buildAdapterConfiguration(); this.keycloakDeployment = KeycloakDeploymentBuilder.build(adapterConfiguration); - // we need to recreate the HttpClient to configure the forced route URL - this.keycloakDeployment.setClient(new Callable() + final String forcedRouteUrl = adapterConfiguration.getForcedRouteUrl(); + if (forcedRouteUrl != null && !forcedRouteUrl.isBlank()) { - - private HttpClient client; - - @Override - public HttpClient call() throws Exception + // we need to recreate the HttpClient to configure the forced route URL + this.keycloakDeployment.setClient(new Callable() { - if (this.client == null) + + private HttpClient client; + + @Override + public HttpClient call() throws Exception { - synchronized (this) + if (this.client == null) { - if (this.client == null) + synchronized (this) { - this.client = new HttpClientBuilder() - .routePlanner(KeycloakAuthenticationFilter.this.createForcedRoutePlanner(adapterConfiguration)) - .build(adapterConfiguration); + if (this.client == null) + { + this.client = new HttpClientBuilder() + .routePlanner(KeycloakAuthenticationFilter.this.createForcedRoutePlanner(adapterConfiguration)) + .build(adapterConfiguration); + } } } + return this.client; } - return this.client; - } - }); + }); + } this.deploymentContext = new AdapterDeploymentContext(this.keycloakDeployment); } @@ -1973,7 +1977,6 @@ public class KeycloakAuthenticationFilter implements DependencyInjectedFilter, I { if (authServerHost.equals(target)) { - LOGGER.trace("Rerouting to forced route"); final HttpRoute route = KeycloakAuthenticationFilter.this.createForcedRoute(adapterConfig); LOGGER.trace("Rerouting to forced route: {}", route); return route;