commit
ce94b7e9de
9 changed files with 16 additions and 23 deletions
4
integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/as7/CatalinaCookieTokenStore.java
Normal file → Executable file
4
integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/as7/CatalinaCookieTokenStore.java
Normal file → Executable file
|
@ -78,10 +78,6 @@ public class CatalinaCookieTokenStore implements AdapterTokenStore {
|
||||||
public void logout() {
|
public void logout() {
|
||||||
CookieTokenStore.removeCookie(facade);
|
CookieTokenStore.removeCookie(facade);
|
||||||
|
|
||||||
KeycloakSecurityContext ksc = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
|
|
||||||
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
|
||||||
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
4
integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/as7/CatalinaSessionTokenStore.java
Normal file → Executable file
4
integration/as7-eap6/adapter/src/main/java/org/keycloak/adapters/as7/CatalinaSessionTokenStore.java
Normal file → Executable file
|
@ -105,10 +105,6 @@ public class CatalinaSessionTokenStore implements AdapterTokenStore {
|
||||||
Session session = request.getSessionInternal(false);
|
Session session = request.getSessionInternal(false);
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
session.removeNote(KeycloakSecurityContext.class.getName());
|
session.removeNote(KeycloakSecurityContext.class.getName());
|
||||||
KeycloakSecurityContext ksc = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
|
|
||||||
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
|
||||||
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,6 +23,7 @@ import org.keycloak.adapters.KeycloakDeployment;
|
||||||
import org.keycloak.adapters.KeycloakDeploymentBuilder;
|
import org.keycloak.adapters.KeycloakDeploymentBuilder;
|
||||||
import org.keycloak.adapters.NodesRegistrationManagement;
|
import org.keycloak.adapters.NodesRegistrationManagement;
|
||||||
import org.keycloak.adapters.PreAuthActionsHandler;
|
import org.keycloak.adapters.PreAuthActionsHandler;
|
||||||
|
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
|
||||||
import org.keycloak.enums.TokenStore;
|
import org.keycloak.enums.TokenStore;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
@ -68,6 +69,9 @@ public class KeycloakAuthenticatorValve extends FormAuthenticator implements Lif
|
||||||
if (ksc != null) {
|
if (ksc != null) {
|
||||||
CatalinaHttpFacade facade = new CatalinaHttpFacade(request, null);
|
CatalinaHttpFacade facade = new CatalinaHttpFacade(request, null);
|
||||||
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
||||||
|
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
||||||
|
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
||||||
|
}
|
||||||
|
|
||||||
AdapterTokenStore tokenStore = getTokenStore(request, facade, deployment);
|
AdapterTokenStore tokenStore = getTokenStore(request, facade, deployment);
|
||||||
tokenStore.logout();
|
tokenStore.logout();
|
||||||
|
|
5
integration/tomcat7/adapter/src/main/java/org/keycloak/adapters/tomcat7/CatalinaCookieTokenStore.java
Normal file → Executable file
5
integration/tomcat7/adapter/src/main/java/org/keycloak/adapters/tomcat7/CatalinaCookieTokenStore.java
Normal file → Executable file
|
@ -75,11 +75,6 @@ public class CatalinaCookieTokenStore implements AdapterTokenStore {
|
||||||
@Override
|
@Override
|
||||||
public void logout() {
|
public void logout() {
|
||||||
CookieTokenStore.removeCookie(facade);
|
CookieTokenStore.removeCookie(facade);
|
||||||
|
|
||||||
KeycloakSecurityContext ksc = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
|
|
||||||
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
|
||||||
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
4
integration/tomcat7/adapter/src/main/java/org/keycloak/adapters/tomcat7/CatalinaSessionTokenStore.java
Normal file → Executable file
4
integration/tomcat7/adapter/src/main/java/org/keycloak/adapters/tomcat7/CatalinaSessionTokenStore.java
Normal file → Executable file
|
@ -103,10 +103,6 @@ public class CatalinaSessionTokenStore implements AdapterTokenStore {
|
||||||
Session session = request.getSessionInternal(false);
|
Session session = request.getSessionInternal(false);
|
||||||
if (session != null) {
|
if (session != null) {
|
||||||
session.removeNote(KeycloakSecurityContext.class.getName());
|
session.removeNote(KeycloakSecurityContext.class.getName());
|
||||||
KeycloakSecurityContext ksc = (KeycloakSecurityContext)request.getAttribute(KeycloakSecurityContext.class.getName());
|
|
||||||
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
|
||||||
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -22,6 +22,7 @@ import org.keycloak.adapters.KeycloakDeployment;
|
||||||
import org.keycloak.adapters.KeycloakDeploymentBuilder;
|
import org.keycloak.adapters.KeycloakDeploymentBuilder;
|
||||||
import org.keycloak.adapters.NodesRegistrationManagement;
|
import org.keycloak.adapters.NodesRegistrationManagement;
|
||||||
import org.keycloak.adapters.PreAuthActionsHandler;
|
import org.keycloak.adapters.PreAuthActionsHandler;
|
||||||
|
import org.keycloak.adapters.RefreshableKeycloakSecurityContext;
|
||||||
import org.keycloak.enums.TokenStore;
|
import org.keycloak.enums.TokenStore;
|
||||||
|
|
||||||
import javax.servlet.ServletContext;
|
import javax.servlet.ServletContext;
|
||||||
|
@ -75,6 +76,9 @@ public class KeycloakAuthenticatorValve extends FormAuthenticator implements Lif
|
||||||
if (ksc != null) {
|
if (ksc != null) {
|
||||||
CatalinaHttpFacade facade = new CatalinaHttpFacade(request, null);
|
CatalinaHttpFacade facade = new CatalinaHttpFacade(request, null);
|
||||||
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
||||||
|
if (ksc instanceof RefreshableKeycloakSecurityContext) {
|
||||||
|
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
||||||
|
}
|
||||||
|
|
||||||
AdapterTokenStore tokenStore = getTokenStore(request, facade, deployment);
|
AdapterTokenStore tokenStore = getTokenStore(request, facade, deployment);
|
||||||
tokenStore.logout();
|
tokenStore.logout();
|
||||||
|
|
1
integration/undertow/src/main/java/org/keycloak/adapters/undertow/UndertowCookieTokenStore.java
Normal file → Executable file
1
integration/undertow/src/main/java/org/keycloak/adapters/undertow/UndertowCookieTokenStore.java
Normal file → Executable file
|
@ -74,7 +74,6 @@ public class UndertowCookieTokenStore implements AdapterTokenStore {
|
||||||
if (principal == null) return;
|
if (principal == null) return;
|
||||||
|
|
||||||
CookieTokenStore.removeCookie(facade);
|
CookieTokenStore.removeCookie(facade);
|
||||||
principal.getKeycloakSecurityContext().logout(deployment);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
|
@ -25,6 +25,7 @@ import io.undertow.server.session.Session;
|
||||||
import io.undertow.util.AttachmentKey;
|
import io.undertow.util.AttachmentKey;
|
||||||
import io.undertow.util.Sessions;
|
import io.undertow.util.Sessions;
|
||||||
import org.keycloak.KeycloakPrincipal;
|
import org.keycloak.KeycloakPrincipal;
|
||||||
|
import org.keycloak.KeycloakSecurityContext;
|
||||||
import org.keycloak.adapters.AdapterDeploymentContext;
|
import org.keycloak.adapters.AdapterDeploymentContext;
|
||||||
import org.keycloak.adapters.AdapterTokenStore;
|
import org.keycloak.adapters.AdapterTokenStore;
|
||||||
import org.keycloak.adapters.AuthChallenge;
|
import org.keycloak.adapters.AuthChallenge;
|
||||||
|
@ -70,9 +71,14 @@ public abstract class UndertowKeycloakAuthMech implements AuthenticationMechanis
|
||||||
public void handleNotification(SecurityNotification notification) {
|
public void handleNotification(SecurityNotification notification) {
|
||||||
if (notification.getEventType() != SecurityNotification.EventType.LOGGED_OUT) return;
|
if (notification.getEventType() != SecurityNotification.EventType.LOGGED_OUT) return;
|
||||||
|
|
||||||
UndertowHttpFacade facade = new UndertowHttpFacade(notification.getExchange());
|
HttpServerExchange exchange = notification.getExchange();
|
||||||
|
UndertowHttpFacade facade = new UndertowHttpFacade(exchange);
|
||||||
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
KeycloakDeployment deployment = deploymentContext.resolveDeployment(facade);
|
||||||
AdapterTokenStore tokenStore = getTokenStore(notification.getExchange(), facade, deployment, securityContext);
|
KeycloakSecurityContext ksc = exchange.getAttachment(UndertowHttpFacade.KEYCLOAK_SECURITY_CONTEXT_KEY);
|
||||||
|
if (ksc != null && ksc instanceof RefreshableKeycloakSecurityContext) {
|
||||||
|
((RefreshableKeycloakSecurityContext) ksc).logout(deployment);
|
||||||
|
}
|
||||||
|
AdapterTokenStore tokenStore = getTokenStore(exchange, facade, deployment, securityContext);
|
||||||
tokenStore.logout();
|
tokenStore.logout();
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
3
integration/undertow/src/main/java/org/keycloak/adapters/undertow/UndertowSessionTokenStore.java
Normal file → Executable file
3
integration/undertow/src/main/java/org/keycloak/adapters/undertow/UndertowSessionTokenStore.java
Normal file → Executable file
|
@ -84,9 +84,6 @@ public class UndertowSessionTokenStore implements AdapterTokenStore {
|
||||||
KeycloakUndertowAccount account = (KeycloakUndertowAccount)session.getAttribute(KeycloakUndertowAccount.class.getName());
|
KeycloakUndertowAccount account = (KeycloakUndertowAccount)session.getAttribute(KeycloakUndertowAccount.class.getName());
|
||||||
if (account == null) return;
|
if (account == null) return;
|
||||||
session.removeAttribute(KeycloakUndertowAccount.class.getName());
|
session.removeAttribute(KeycloakUndertowAccount.class.getName());
|
||||||
if (account.getKeycloakSecurityContext() != null) {
|
|
||||||
account.getKeycloakSecurityContext().logout(deployment);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
Loading…
Reference in a new issue