keycloak-service
公開メンバ関数 | 全メンバ一覧
org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler クラス
org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler の継承関係図
Inheritance graph
org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler 連携図
Collaboration graph

公開メンバ関数

 ExecuteActionsActionTokenHandler ()
 
Predicate<? super ExecuteActionsActionToken > [] getVerifiers (ActionTokenContext< ExecuteActionsActionToken > tokenContext)
 
Response handleToken (ExecuteActionsActionToken token, ActionTokenContext< ExecuteActionsActionToken > tokenContext)
 
boolean canUseTokenRepeatedly (ExecuteActionsActionToken token, ActionTokenContext< ExecuteActionsActionToken > tokenContext)
 
ActionTokenHandler< T > create (KeycloakSession session)
 
void init (Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
String getId ()
 
void close ()
 
Class< T > getTokenClass ()
 
EventType eventType ()
 
String getDefaultErrorMessage ()
 
String getDefaultEventError ()
 
String getAuthenticationSessionIdFromToken (T token, ActionTokenContext< T > tokenContext, AuthenticationSessionModel currentAuthSession)
 
AuthenticationSessionModel startFreshAuthenticationSession (T token, ActionTokenContext< T > tokenContext)
 
boolean canUseTokenRepeatedly (T token, ActionTokenContext< T > tokenContext)
 

詳解

著者
hmlnarik

構築子と解体子

◆ ExecuteActionsActionTokenHandler()

org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler.ExecuteActionsActionTokenHandler ( )
inline
45  {
46  super(
47  ExecuteActionsActionToken.TOKEN_TYPE,
48  ExecuteActionsActionToken.class,
49  Messages.INVALID_CODE,
50  EventType.EXECUTE_ACTIONS,
51  Errors.NOT_ALLOWED
52  );
53  }

関数詳解

◆ canUseTokenRepeatedly() [1/2]

boolean org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.canUseTokenRepeatedly ( token,
ActionTokenContext< T >  tokenContext 
)
inlineinherited
102  {
103  return true;
104  }

◆ canUseTokenRepeatedly() [2/2]

boolean org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler.canUseTokenRepeatedly ( ExecuteActionsActionToken  token,
ActionTokenContext< ExecuteActionsActionToken tokenContext 
)
inline
112  {
113  RealmModel realm = tokenContext.getRealm();
114  KeycloakSessionFactory sessionFactory = tokenContext.getSession().getKeycloakSessionFactory();
115 
116  return token.getRequiredActions().stream()
117  .map(actionName -> realm.getRequiredActionProviderByAlias(actionName)) // get realm-specific model from action name and filter out irrelevant
118  .filter(Objects::nonNull)
119  .filter(RequiredActionProviderModel::isEnabled)
120 
121  .map(RequiredActionProviderModel::getProviderId) // get provider ID from model
122 
123  .map(providerId -> (RequiredActionFactory) sessionFactory.getProviderFactory(RequiredActionProvider.class, providerId))
124  .filter(Objects::nonNull)
125 
126  .noneMatch(RequiredActionFactory::isOneTimeAction);
127  }
RealmModel getRealm()
Definition: ActionTokenContext.java:93
KeycloakSession getSession()
Definition: ActionTokenContext.java:89

◆ close()

void org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.close ( )
inlineinherited
66  {
67  }

◆ create()

ActionTokenHandler<T> org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.create ( KeycloakSession  session)
inlineinherited
48  {
49  return this;
50  }

◆ eventType()

EventType org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.eventType ( )
inlineinherited
75  {
76  return this.defaultEventType;
77  }
final EventType defaultEventType
Definition: AbstractActionTokenHander.java:36

◆ getAuthenticationSessionIdFromToken()

String org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.getAuthenticationSessionIdFromToken ( token,
ActionTokenContext< T >  tokenContext,
AuthenticationSessionModel  currentAuthSession 
)
inlineinherited
90  {
91  return token instanceof DefaultActionToken ? ((DefaultActionToken) token).getCompoundAuthenticationSessionId() : null;
92  }

◆ getDefaultErrorMessage()

String org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.getDefaultErrorMessage ( )
inlineinherited
80  {
81  return this.defaultErrorMessage;
82  }
final String defaultErrorMessage
Definition: AbstractActionTokenHander.java:35

◆ getDefaultEventError()

String org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.getDefaultEventError ( )
inlineinherited
85  {
86  return this.defaultEventError;
87  }

◆ getId()

String org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.getId ( )
inlineinherited
61  {
62  return this.id;
63  }

◆ getTokenClass()

Class<T> org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.getTokenClass ( )
inlineinherited
70  {
71  return this.tokenClass;
72  }
final Class< T > tokenClass
Definition: AbstractActionTokenHander.java:34

◆ getVerifiers()

Predicate<? super ExecuteActionsActionToken> [] org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler.getVerifiers ( ActionTokenContext< ExecuteActionsActionToken tokenContext)
inline
56  {
57  return TokenUtils.predicates(
59  // either redirect URI is not specified or must be valid for the client
60  t -> t.getRedirectUri() == null
61  || RedirectUtils.verifyRedirectUri(tokenContext.getUriInfo(), t.getRedirectUri(),
62  tokenContext.getRealm(), tokenContext.getAuthenticationSession().getClient()) != null,
63  Errors.INVALID_REDIRECT_URI,
64  Messages.INVALID_REDIRECT_URI
65  )
66  );
67  }
AuthenticationSessionModel getAuthenticationSession()
Definition: ActionTokenContext.java:134
static< T extends JsonWebToken > Predicate<? super T > [] predicates(Predicate<? super T >... predicate)
Definition: TokenUtils.java:82
UriInfo getUriInfo()
Definition: ActionTokenContext.java:97
static Predicate< JsonWebToken > checkThat(BooleanSupplier function, String errorEvent, String errorMessage)
Definition: TokenUtils.java:39
RealmModel getRealm()
Definition: ActionTokenContext.java:93

◆ handleToken()

Response org.keycloak.authentication.actiontoken.execactions.ExecuteActionsActionTokenHandler.handleToken ( ExecuteActionsActionToken  token,
ActionTokenContext< ExecuteActionsActionToken tokenContext 
)
inline
70  {
71  AuthenticationSessionModel authSession = tokenContext.getAuthenticationSession();
72  final UriInfo uriInfo = tokenContext.getUriInfo();
73  final RealmModel realm = tokenContext.getRealm();
74  final KeycloakSession session = tokenContext.getSession();
75  if (tokenContext.isAuthenticationSessionFresh()) {
76  // Update the authentication session in the token
77  String authSessionEncodedId = AuthenticationSessionCompoundId.fromAuthSession(authSession).getEncodedId();
78  token.setCompoundAuthenticationSessionId(authSessionEncodedId);
79  UriBuilder builder = Urls.actionTokenBuilder(uriInfo.getBaseUri(), token.serialize(session, realm, uriInfo),
80  authSession.getClient().getClientId(), authSession.getTabId());
81  String confirmUri = builder.build(realm.getName()).toString();
82 
83  return session.getProvider(LoginFormsProvider.class)
84  .setAuthenticationSession(authSession)
85  .setSuccess(Messages.CONFIRM_EXECUTION_OF_ACTIONS)
86  .setAttribute(Constants.TEMPLATE_ATTR_ACTION_URI, confirmUri)
87  .setAttribute(Constants.TEMPLATE_ATTR_REQUIRED_ACTIONS, token.getRequiredActions())
88  .createInfoPage();
89  }
90 
91  String redirectUri = RedirectUtils.verifyRedirectUri(tokenContext.getUriInfo(), token.getRedirectUri(),
92  tokenContext.getRealm(), authSession.getClient());
93 
94  if (redirectUri != null) {
95  authSession.setAuthNote(AuthenticationManager.SET_REDIRECT_URI_AFTER_REQUIRED_ACTIONS, "true");
96 
97  authSession.setRedirectUri(redirectUri);
98  authSession.setClientNote(OIDCLoginProtocol.REDIRECT_URI_PARAM, redirectUri);
99  }
100 
101  token.getRequiredActions().stream().forEach(authSession::addRequiredAction);
102 
103  UserModel user = tokenContext.getAuthenticationSession().getAuthenticatedUser();
104  // verify user email as we know it is valid as this entry point would never have gotten here.
105  user.setEmailVerified(true);
106 
107  String nextAction = AuthenticationManager.nextRequiredAction(tokenContext.getSession(), authSession, tokenContext.getClientConnection(), tokenContext.getRequest(), tokenContext.getUriInfo(), tokenContext.getEvent());
108  return AuthenticationManager.redirectToRequiredActions(tokenContext.getSession(), tokenContext.getRealm(), authSession, tokenContext.getUriInfo(), nextAction);
109  }
AuthenticationSessionModel getAuthenticationSession()
Definition: ActionTokenContext.java:134
static final String SET_REDIRECT_URI_AFTER_REQUIRED_ACTIONS
Definition: AuthenticationManager.java:103
Definition: AuthenticationManager.java:102
EventBuilder getEvent()
Definition: ActionTokenContext.java:81
boolean isAuthenticationSessionFresh()
Definition: ActionTokenContext.java:130
static final String REDIRECT_URI_PARAM
Definition: OIDCLoginProtocol.java:70
static String nextRequiredAction(final KeycloakSession session, final AuthenticationSessionModel authSession, final ClientConnection clientConnection, final HttpRequest request, final UriInfo uriInfo, final EventBuilder event)
Definition: AuthenticationManager.java:865
HttpRequest getRequest()
Definition: ActionTokenContext.java:105
static UriBuilder actionTokenBuilder(URI baseUri, String tokenString, String clientId, String tabId)
Definition: Urls.java:190
UriInfo getUriInfo()
Definition: ActionTokenContext.java:97
ClientConnection getClientConnection()
Definition: ActionTokenContext.java:101
RealmModel getRealm()
Definition: ActionTokenContext.java:93
KeycloakSession getSession()
Definition: ActionTokenContext.java:89
Definition: OIDCLoginProtocol.java:61
Definition: Urls.java:36
static Response redirectToRequiredActions(KeycloakSession session, RealmModel realm, AuthenticationSessionModel authSession, UriInfo uriInfo, String requiredAction)
Definition: AuthenticationManager.java:795

◆ init()

void org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.init ( Scope  config)
inlineinherited
53  {
54  }

◆ postInit()

void org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.postInit ( KeycloakSessionFactory  factory)
inlineinherited
57  {
58  }

◆ startFreshAuthenticationSession()

AuthenticationSessionModel org.keycloak.authentication.actiontoken.AbstractActionTokenHander< T extends JsonWebToken >.startFreshAuthenticationSession ( token,
ActionTokenContext< T >  tokenContext 
)
inlineinherited
95  {
96  AuthenticationSessionModel authSession = tokenContext.createAuthenticationSessionForClient(token.getIssuedFor());
97  authSession.setAuthNote(AuthenticationManager.END_AFTER_REQUIRED_ACTIONS, "true");
98  return authSession;
99  }

このクラス詳解は次のファイルから抽出されました: