Package org.keycloak.protocol.oidc
Class TokenManager
java.lang.Object
org.keycloak.protocol.oidc.TokenManager
Stateless object that creates tokens and manages oauth access codes
- Version:
- $Revision: 1 $
- Author:
- Bill Burke
-
Nested Class Summary
Nested ClassesModifier and TypeClassDescriptionstatic classstatic classstatic classCheck if access token was revoked with OAuth revocation endpointstatic class -
Constructor Summary
Constructors -
Method Summary
Modifier and TypeMethodDescriptionstatic org.keycloak.models.ClientSessionContextattachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) static org.keycloak.models.ClientSessionContextattachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession, boolean createTransientIfMissing) static org.keycloak.models.ClientSessionContextattachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession, Set<String> restrictedScopes, boolean createTransientIfMissing) org.keycloak.representations.AccessTokencreateClientAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, boolean isOffline) static voiddetachClientSession(org.keycloak.models.AuthenticatedClientSessionModel clientSession) generateUserInfoClaims(org.keycloak.representations.AccessToken userInfo, org.keycloak.models.UserModel userModel) static Set<org.keycloak.models.RoleModel>getAccess(org.keycloak.models.UserModel user, org.keycloak.models.ClientModel client, Stream<org.keycloak.models.ClientScopeModel> clientScopes) static Stream<org.keycloak.models.ClientScopeModel>getRequestedClientScopes(org.keycloak.models.KeycloakSession session, String scopeParam, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) Return client itself + all default client scopes of client + optional client scopes requested by scope parametergetReuseIdKey(org.keycloak.representations.AccessToken refreshToken) protected org.keycloak.representations.AccessTokeninitToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, boolean isOffline) static booleanisRepeatableScope(org.keycloak.models.KeycloakSession session, org.keycloak.models.ClientScopeModel clientScope) static booleanisUserValid(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token, org.keycloak.models.UserModel user) static booleanisValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.models.ClientModel client) static booleanisValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) static booleanisValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.rar.AuthorizationRequestContext authorizationRequestContext, org.keycloak.models.ClientModel client) Check that all the ClientScopes that have been parsed into authorization_resources are actually in the requested scopes otherwise, the scope wasn't parsed correctlystatic booleanisValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.rar.AuthorizationRequestContext authorizationRequestContext, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) static org.keycloak.models.UserModellookupUserFromStatelessToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token) Lookup user from the "stateless" token.parseScopeParameter(String scopeParam) responseBuilder(org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.events.EventBuilder event, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) Optional<org.keycloak.representations.LogoutToken>toLogoutToken(String encodedLogoutToken) org.keycloak.representations.RefreshTokentoRefreshToken(org.keycloak.models.KeycloakSession session, String encodedRefreshToken) org.keycloak.representations.AccessTokentransformAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) org.keycloak.representations.AccessTokenResponsetransformAccessTokenResponse(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessTokenResponse accessTokenResponse, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) org.keycloak.representations.IDTokentransformIDToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.IDToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) org.keycloak.representations.AccessTokentransformIntrospectionAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken bearer, org.keycloak.representations.AccessToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) org.keycloak.representations.AccessTokentransformUserInfoAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken userInfo, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) org.keycloak.representations.AccessTokentransformUserInfoAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken bearerToken, org.keycloak.representations.AccessToken userInfo, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) validateLogoutTokenAgainstIdpProvider(Stream<OIDCIdentityProvider> oidcIdps, String encodedLogoutToken) voidvalidateSelectedOrganization(org.keycloak.models.KeycloakSession session, org.keycloak.representations.JsonWebToken token, org.keycloak.models.UserModel user) validateToken(org.keycloak.models.KeycloakSession session, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.common.ClientConnection connection, org.keycloak.models.RealmModel realm, org.keycloak.representations.RefreshToken oldToken, jakarta.ws.rs.core.HttpHeaders headers, String oldTokenScope) voidvalidateTokenReuse(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken refreshToken, org.keycloak.models.AuthenticatedClientSessionModel clientSession, boolean refreshFlag) static booleanvalidateUserNotBefore(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token, org.keycloak.models.UserModel user) static booleanverifyConsentStillAvailable(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserModel user, org.keycloak.models.ClientModel client, org.keycloak.models.AuthenticatedClientSessionModel clientSession, String scopeParam) org.keycloak.representations.IDTokenverifyIDToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, String encodedIDToken) org.keycloak.representations.IDTokenverifyIDTokenSignature(org.keycloak.models.KeycloakSession session, String encodedIDToken) verifyLogoutToken(org.keycloak.models.KeycloakSession session, String encodedLogoutToken) org.keycloak.representations.RefreshTokenverifyRefreshToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.http.HttpRequest request, String encodedRefreshToken, boolean checkExpiration)
-
Constructor Details
-
TokenManager
public TokenManager()
-
-
Method Details
-
validateToken
public TokenManager.TokenValidation validateToken(org.keycloak.models.KeycloakSession session, jakarta.ws.rs.core.UriInfo uriInfo, org.keycloak.common.ClientConnection connection, org.keycloak.models.RealmModel realm, org.keycloak.representations.RefreshToken oldToken, jakarta.ws.rs.core.HttpHeaders headers, String oldTokenScope) throws org.keycloak.OAuthErrorException - Throws:
org.keycloak.OAuthErrorException
-
isUserValid
public static boolean isUserValid(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token, org.keycloak.models.UserModel user) -
validateUserNotBefore
public static boolean validateUserNotBefore(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token, org.keycloak.models.UserModel user) -
lookupUserFromStatelessToken
public static org.keycloak.models.UserModel lookupUserFromStatelessToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken token) Lookup user from the "stateless" token. Stateless token is the token without sessionState filled (token doesn't belong to any userSession) -
validateTokenReuse
public void validateTokenReuse(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.representations.AccessToken refreshToken, org.keycloak.models.AuthenticatedClientSessionModel clientSession, boolean refreshFlag) throws org.keycloak.OAuthErrorException - Throws:
org.keycloak.OAuthErrorException
-
verifyRefreshToken
public org.keycloak.representations.RefreshToken verifyRefreshToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.http.HttpRequest request, String encodedRefreshToken, boolean checkExpiration) throws org.keycloak.OAuthErrorException - Throws:
org.keycloak.OAuthErrorException
-
toRefreshToken
public org.keycloak.representations.RefreshToken toRefreshToken(org.keycloak.models.KeycloakSession session, String encodedRefreshToken) throws org.keycloak.jose.jws.JWSInputException, org.keycloak.OAuthErrorException - Throws:
org.keycloak.jose.jws.JWSInputExceptionorg.keycloak.OAuthErrorException
-
verifyIDToken
public org.keycloak.representations.IDToken verifyIDToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, String encodedIDToken) throws org.keycloak.OAuthErrorException - Throws:
org.keycloak.OAuthErrorException
-
verifyIDTokenSignature
public org.keycloak.representations.IDToken verifyIDTokenSignature(org.keycloak.models.KeycloakSession session, String encodedIDToken) throws org.keycloak.OAuthErrorException - Throws:
org.keycloak.OAuthErrorException
-
createClientAccessToken
public org.keycloak.representations.AccessToken createClientAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, boolean isOffline) -
attachAuthenticationSession
public static org.keycloak.models.ClientSessionContext attachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession) -
attachAuthenticationSession
public static org.keycloak.models.ClientSessionContext attachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession, boolean createTransientIfMissing) -
attachAuthenticationSession
public static org.keycloak.models.ClientSessionContext attachAuthenticationSession(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.sessions.AuthenticationSessionModel authSession, Set<String> restrictedScopes, boolean createTransientIfMissing) -
detachClientSession
public static void detachClientSession(org.keycloak.models.AuthenticatedClientSessionModel clientSession) -
getAccess
-
getRequestedClientScopes
public static Stream<org.keycloak.models.ClientScopeModel> getRequestedClientScopes(org.keycloak.models.KeycloakSession session, String scopeParam, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) Return client itself + all default client scopes of client + optional client scopes requested by scope parameter -
isValidScope
public static boolean isValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.rar.AuthorizationRequestContext authorizationRequestContext, org.keycloak.models.ClientModel client) Check that all the ClientScopes that have been parsed into authorization_resources are actually in the requested scopes otherwise, the scope wasn't parsed correctly- Parameters:
session-scopes-authorizationRequestContext- authorizationRequestContext. It is not null just if parameterized scopes feature is enabledclient-- Returns:
-
isValidScope
public static boolean isValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.rar.AuthorizationRequestContext authorizationRequestContext, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) -
isRepeatableScope
public static boolean isRepeatableScope(org.keycloak.models.KeycloakSession session, org.keycloak.models.ClientScopeModel clientScope) -
isValidScope
public static boolean isValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.models.ClientModel client) -
isValidScope
public static boolean isValidScope(org.keycloak.models.KeycloakSession session, String scopes, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user) -
parseScopeParameter
-
verifyConsentStillAvailable
public static boolean verifyConsentStillAvailable(org.keycloak.models.KeycloakSession session, org.keycloak.models.UserModel user, org.keycloak.models.ClientModel client, org.keycloak.models.AuthenticatedClientSessionModel clientSession, String scopeParam) -
transformAccessToken
public org.keycloak.representations.AccessToken transformAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
transformAccessTokenResponse
public org.keycloak.representations.AccessTokenResponse transformAccessTokenResponse(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessTokenResponse accessTokenResponse, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
transformUserInfoAccessToken
public org.keycloak.representations.AccessToken transformUserInfoAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken userInfo, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
transformUserInfoAccessToken
public org.keycloak.representations.AccessToken transformUserInfoAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken bearerToken, org.keycloak.representations.AccessToken userInfo, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
transformIntrospectionAccessToken
public org.keycloak.representations.AccessToken transformIntrospectionAccessToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.AccessToken bearer, org.keycloak.representations.AccessToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
generateUserInfoClaims
-
transformIDToken
public org.keycloak.representations.IDToken transformIDToken(org.keycloak.models.KeycloakSession session, org.keycloak.representations.IDToken token, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
initToken
protected org.keycloak.representations.AccessToken initToken(org.keycloak.models.KeycloakSession session, org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.models.UserModel user, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx, boolean isOffline) -
responseBuilder
public TokenManager.AccessTokenResponseBuilder responseBuilder(org.keycloak.models.RealmModel realm, org.keycloak.models.ClientModel client, org.keycloak.events.EventBuilder event, org.keycloak.models.KeycloakSession session, org.keycloak.models.UserSessionModel userSession, org.keycloak.models.ClientSessionContext clientSessionCtx) -
verifyLogoutToken
public LogoutTokenValidationContext verifyLogoutToken(org.keycloak.models.KeycloakSession session, String encodedLogoutToken) -
toLogoutToken
-
validateLogoutTokenAgainstIdpProvider
public Stream<OIDCIdentityProvider> validateLogoutTokenAgainstIdpProvider(Stream<OIDCIdentityProvider> oidcIdps, String encodedLogoutToken) -
getReuseIdKey
-
validateSelectedOrganization
public void validateSelectedOrganization(org.keycloak.models.KeycloakSession session, org.keycloak.representations.JsonWebToken token, org.keycloak.models.UserModel user)
-