diff --git a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakConfigurationServletListener.java b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakConfigurationServletListener.java index c0fb43b935..0238aefcfb 100644 --- a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakConfigurationServletListener.java +++ b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakConfigurationServletListener.java @@ -50,27 +50,29 @@ public class KeycloakConfigurationServletListener implements ServletContextListe ServletContext servletContext = sce.getServletContext(); String configResolverClass = servletContext.getInitParameter("keycloak.config.resolver"); KeycloakConfigResolver configResolver; - AdapterDeploymentContext deploymentContext; + AdapterDeploymentContext deploymentContext = (AdapterDeploymentContext) servletContext.getAttribute(AdapterDeploymentContext.class.getName()); - if (configResolverClass != null) { - try { - configResolver = (KeycloakConfigResolver) servletContext.getClassLoader().loadClass(configResolverClass).newInstance(); - deploymentContext = new AdapterDeploymentContext(configResolver); - } catch (Exception ex) { - deploymentContext = new AdapterDeploymentContext(new KeycloakDeployment()); - } - } else { - InputStream is = getConfigInputStream(servletContext); - - KeycloakDeployment deployment; - - if (is == null) { - deployment = new KeycloakDeployment(); + if (deploymentContext == null) { + if (configResolverClass != null) { + try { + configResolver = (KeycloakConfigResolver) servletContext.getClassLoader().loadClass(configResolverClass).newInstance(); + deploymentContext = new AdapterDeploymentContext(configResolver); + } catch (Exception ex) { + deploymentContext = new AdapterDeploymentContext(new KeycloakDeployment()); + } } else { - deployment = KeycloakDeploymentBuilder.build(is); - } + InputStream is = getConfigInputStream(servletContext); - deploymentContext = new AdapterDeploymentContext(deployment); + KeycloakDeployment deployment; + + if (is == null) { + deployment = new KeycloakDeployment(); + } else { + deployment = KeycloakDeploymentBuilder.build(is); + } + + deploymentContext = new AdapterDeploymentContext(deployment); + } } servletContext.setAttribute(ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE, deploymentContext); diff --git a/adapters/oidc/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/extension/KeycloakAdapterConfigDeploymentProcessor.java b/adapters/oidc/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/extension/KeycloakAdapterConfigDeploymentProcessor.java index 1500808e32..5e0432c401 100755 --- a/adapters/oidc/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/extension/KeycloakAdapterConfigDeploymentProcessor.java +++ b/adapters/oidc/wildfly/wildfly-subsystem/src/main/java/org/keycloak/subsystem/adapter/extension/KeycloakAdapterConfigDeploymentProcessor.java @@ -71,11 +71,10 @@ public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitP KeycloakAdapterConfigService service = KeycloakAdapterConfigService.getInstance(); if (service.isSecureDeployment(deploymentUnit) && service.isDeploymentConfigured(deploymentUnit)) { addKeycloakAuthData(phaseContext, service); - } else if (service.isElytronEnabled(deploymentUnit)) { - WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); - addConfigurationListener(warMetaData); } + addConfigurationListener(deploymentUnit); + // FYI, Undertow Extension will find deployments that have auth-method set to KEYCLOAK // todo notsure if we need this @@ -104,10 +103,6 @@ public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitP loginConfig.setAuthMethod("KEYCLOAK"); loginConfig.setRealmName(service.getRealmName(deploymentUnit)); KeycloakLogger.ROOT_LOGGER.deploymentSecured(deploymentUnit.getName()); - - if (service.isElytronEnabled(deploymentUnit)) { - addConfigurationListener(warMetaData); - } } private void addJSONData(String json, WarMetaData warMetaData) { @@ -130,7 +125,8 @@ public class KeycloakAdapterConfigDeploymentProcessor implements DeploymentUnitP webMetaData.setContextParams(contextParams); } - private void addConfigurationListener(WarMetaData warMetaData) { + private void addConfigurationListener(DeploymentUnit deploymentUnit) { + WarMetaData warMetaData = deploymentUnit.getAttachment(WarMetaData.ATTACHMENT_KEY); if (warMetaData == null) { return; } diff --git a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakConfigurationServletListener.java b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakConfigurationServletListener.java index 3a281a5dc4..861c29ebce 100644 --- a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakConfigurationServletListener.java +++ b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakConfigurationServletListener.java @@ -49,7 +49,7 @@ public class KeycloakConfigurationServletListener implements ServletContextListe protected static Logger log = Logger.getLogger(KeycloakConfigurationServletListener.class); - static final String ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE = AdapterDeploymentContext.class.getName() + ".elytron"; + static final String ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE = SamlDeploymentContext.class.getName() + ".elytron"; @Override public void contextInitialized(ServletContextEvent sce) {