Logout user session. User must be logged in via a session cookie.
  100         String redirect = postLogoutRedirectUri != null ? postLogoutRedirectUri : redirectUri;
   102         if (redirect != null) {
   104             if (validatedUri == null) {
   105                 event.event(EventType.LOGOUT);
   106                 event.detail(Details.REDIRECT_URI, redirect);
   107                 event.error(Errors.INVALID_REDIRECT_URI);
   108                 return ErrorPage.error(
session, null, Response.Status.BAD_REQUEST, Messages.INVALID_REDIRECT_URI);
   110             redirect = validatedUri;
   113         UserSessionModel userSession = null;
   114         if (encodedIdToken != null) {
   118             } 
catch (OAuthErrorException e) {
   119                 event.event(EventType.LOGOUT);
   120                 event.error(Errors.INVALID_TOKEN);
   121                 return ErrorPage.error(
session, null, Response.Status.BAD_REQUEST, Messages.SESSION_NOT_ACTIVE);
   126         AuthenticationManager.AuthResult authResult = AuthenticationManager.authenticateIdentityCookie(
session, 
realm, 
false);
   127         if (authResult != null) {
   128             userSession = userSession != null ? userSession : authResult.getSession();
   129             if (redirect != null) userSession.
setNote(OIDCLoginProtocol.LOGOUT_REDIRECT_URI, redirect);
   130             if (state != null) userSession.setNote(OIDCLoginProtocol.LOGOUT_STATE_PARAM, state);
   131             userSession.setNote(AuthenticationManager.KEYCLOAK_LOGOUT_PROTOCOL, OIDCLoginProtocol.LOGIN_PROTOCOL);
   132             logger.debug(
"Initiating OIDC browser logout");
   134             logger.debug(
"finishing OIDC browser logout");
   136         } 
else if (userSession != null) { 
   137             event.event(EventType.LOGOUT);
   139             event.user(userSession.getUser()).
session(userSession).success();
   142         if (redirect != null) {
   143             UriBuilder uriBuilder = UriBuilder.fromUri(redirect);
   144             if (state != null) uriBuilder.queryParam(OIDCLoginProtocol.STATE_PARAM, state);
   145             return Response.status(302).location(uriBuilder.build()).build();
   147             return Response.ok().build();
 static final Logger logger
Definition: LogoutEndpoint.java:64
 
KeycloakContext getContext()
 
TokenManager tokenManager
Definition: LogoutEndpoint.java:78
 
HttpHeaders headers
Definition: LogoutEndpoint.java:76
 
UserSessionModel getUserSession(RealmModel realm, String id)
 
ClientConnection clientConnection
Definition: LogoutEndpoint.java:70
 
RealmModel realm
Definition: LogoutEndpoint.java:79
 
KeycloakSession session
Definition: LogoutEndpoint.java:67
 
void setNote(String name, String value)
 
UserSessionProvider sessions()