From 4c71e2ec17cf1207426373dc1275f9fd353bea92 Mon Sep 17 00:00:00 2001 From: Pedro Igor Date: Thu, 28 Sep 2017 06:46:17 -0300 Subject: [PATCH] [KEYCLOAK-4439] - Changes for Wildfly 11.0.0.CR1 (#4504) * [KEYCLOAK-4439] - Changes for Wildfly 11.0.0.CR1 * [KEYCLOAK-5463] - Fixing servlet filter when using elytron adapters --- .../keycloak/adapters/elytron/ElytronSessionTokenStore.java | 2 +- .../elytron/KeycloakConfigurationServletListener.java | 5 ++++- .../elytron/KeycloakHttpServerAuthenticationMechanism.java | 3 +-- .../saml/elytron/KeycloakConfigurationServletListener.java | 5 ++++- .../elytron/KeycloakHttpServerAuthenticationMechanism.java | 2 +- 5 files changed, 11 insertions(+), 6 deletions(-) diff --git a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/ElytronSessionTokenStore.java b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/ElytronSessionTokenStore.java index eace514837..d4946418c2 100644 --- a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/ElytronSessionTokenStore.java +++ b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/ElytronSessionTokenStore.java @@ -53,7 +53,7 @@ public class ElytronSessionTokenStore implements ElytronTokeStore { @Override public void checkCurrentToken() { HttpScope session = httpFacade.getScope(Scope.SESSION); - if (!session.exists()) return; + if (session == null || !session.exists()) return; RefreshableKeycloakSecurityContext securityContext = (RefreshableKeycloakSecurityContext) session.getAttachment(KeycloakSecurityContext.class.getName()); if (securityContext == null) return; 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 ad8e9d5215..c0fb43b935 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 @@ -42,6 +42,9 @@ import java.io.InputStream; * @author Pedro Igor */ public class KeycloakConfigurationServletListener implements ServletContextListener { + + static final String ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE = AdapterDeploymentContext.class.getName() + ".elytron"; + @Override public void contextInitialized(ServletContextEvent sce) { ServletContext servletContext = sce.getServletContext(); @@ -70,7 +73,7 @@ public class KeycloakConfigurationServletListener implements ServletContextListe deploymentContext = new AdapterDeploymentContext(deployment); } - servletContext.setAttribute(AdapterDeploymentContext.class.getName(), deploymentContext); + servletContext.setAttribute(ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE, deploymentContext); } @Override diff --git a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakHttpServerAuthenticationMechanism.java b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakHttpServerAuthenticationMechanism.java index 8d0cd1d538..2675a9abcd 100644 --- a/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakHttpServerAuthenticationMechanism.java +++ b/adapters/oidc/wildfly-elytron/src/main/java/org/keycloak/adapters/elytron/KeycloakHttpServerAuthenticationMechanism.java @@ -31,7 +31,6 @@ import org.keycloak.adapters.AuthenticatedActionsHandler; import org.keycloak.adapters.KeycloakDeployment; import org.keycloak.adapters.NodesRegistrationManagement; import org.keycloak.adapters.PreAuthActionsHandler; -import org.keycloak.adapters.RefreshableKeycloakSecurityContext; import org.keycloak.adapters.RequestAuthenticator; import org.keycloak.adapters.spi.AuthChallenge; import org.keycloak.adapters.spi.AuthOutcome; @@ -127,7 +126,7 @@ class KeycloakHttpServerAuthenticationMechanism implements HttpServerAuthenticat private AdapterDeploymentContext getDeploymentContext(HttpServerRequest request) { if (this.deploymentContext == null) { - return (AdapterDeploymentContext) request.getScope(Scope.APPLICATION).getAttachment(AdapterDeploymentContext.class.getName()); + return (AdapterDeploymentContext) request.getScope(Scope.APPLICATION).getAttachment(KeycloakConfigurationServletListener.ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE); } return this.deploymentContext; 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 94ae5920d3..3a281a5dc4 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 @@ -27,6 +27,7 @@ import javax.servlet.ServletContextEvent; import javax.servlet.ServletContextListener; import org.jboss.logging.Logger; +import org.keycloak.adapters.AdapterDeploymentContext; import org.keycloak.adapters.saml.AdapterConstants; import org.keycloak.adapters.saml.DefaultSamlDeployment; import org.keycloak.adapters.saml.SamlDeployment; @@ -48,6 +49,8 @@ public class KeycloakConfigurationServletListener implements ServletContextListe protected static Logger log = Logger.getLogger(KeycloakConfigurationServletListener.class); + static final String ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE = AdapterDeploymentContext.class.getName() + ".elytron"; + @Override public void contextInitialized(ServletContextEvent sce) { ServletContext servletContext = sce.getServletContext(); @@ -83,7 +86,7 @@ public class KeycloakConfigurationServletListener implements ServletContextListe } } deploymentContext = new SamlDeploymentContext(deployment); - servletContext.setAttribute(SamlDeploymentContext.class.getName(), deploymentContext); + servletContext.setAttribute(ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE, deploymentContext); log.debug("Keycloak is using a per-deployment configuration."); } } diff --git a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java index 1f71bae329..17a1383c6f 100644 --- a/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java +++ b/adapters/saml/wildfly-elytron/src/main/java/org/keycloak/adapters/saml/elytron/KeycloakHttpServerAuthenticationMechanism.java @@ -130,7 +130,7 @@ class KeycloakHttpServerAuthenticationMechanism implements HttpServerAuthenticat private SamlDeploymentContext getDeploymentContext(HttpServerRequest request) { if (this.deploymentContext == null) { - return (SamlDeploymentContext) request.getScope(Scope.APPLICATION).getAttachment(SamlDeploymentContext.class.getName()); + return (SamlDeploymentContext) request.getScope(Scope.APPLICATION).getAttachment(KeycloakConfigurationServletListener.ADAPTER_DEPLOYMENT_CONTEXT_ATTRIBUTE); } return this.deploymentContext;