keycloak-service
クラス | 公開メンバ関数 | 静的公開メンバ関数 | 静的公開変数類 | 限定公開メンバ関数 | 限定公開変数類 | 静的限定公開変数類 | 非公開メンバ関数 | 全メンバ一覧
org.keycloak.authentication.AuthenticationProcessor クラス
org.keycloak.authentication.AuthenticationProcessor の継承関係図
Inheritance graph
org.keycloak.authentication.AuthenticationProcessor 連携図
Collaboration graph

クラス

class  Result
 

公開メンバ関数

 AuthenticationProcessor ()
 
boolean isBrowserFlow ()
 
AuthenticationProcessor setBrowserFlow (boolean browserFlow)
 
BruteForceProtector getBruteForceProtector ()
 
RealmModel getRealm ()
 
ClientModel getClient ()
 
void setClient (ClientModel client)
 
Map< String, String > getClientAuthAttributes ()
 
AuthenticationSessionModel getAuthenticationSession ()
 
ClientConnection getConnection ()
 
UriInfo getUriInfo ()
 
KeycloakSession getSession ()
 
UserSessionModel getUserSession ()
 
AuthenticationProcessor setRealm (RealmModel realm)
 
AuthenticationProcessor setAuthenticationSession (AuthenticationSessionModel authenticationSession)
 
AuthenticationProcessor setConnection (ClientConnection connection)
 
AuthenticationProcessor setUriInfo (UriInfo uriInfo)
 
AuthenticationProcessor setSession (KeycloakSession session)
 
AuthenticationProcessor setEventBuilder (EventBuilder eventBuilder)
 
AuthenticationProcessor setRequest (HttpRequest request)
 
AuthenticationProcessor setFlowId (String flowId)
 
AuthenticationProcessor setFlowPath (String flowPath)
 
AuthenticationProcessor setForwardedErrorMessage (FormMessage forwardedErrorMessage)
 
AuthenticationProcessor setForwardedSuccessMessage (FormMessage forwardedSuccessMessage)
 
String generateCode ()
 
EventBuilder newEvent ()
 
EventBuilder getEvent ()
 
HttpRequest getRequest ()
 
void setAutheticatedUser (UserModel user)
 
void clearAuthenticatedUser ()
 
URI getRefreshUrl (boolean authSessionIdParam)
 
void logFailure ()
 
boolean isSuccessful (AuthenticationExecutionModel model)
 
Response handleBrowserException (Exception failure)
 
Response handleClientAuthException (Exception failure)
 
AuthenticationFlow createFlowExecution (String flowId, AuthenticationExecutionModel execution)
 
Response authenticate () throws AuthenticationFlowException
 
Response authenticateClient () throws AuthenticationFlowException
 
Response redirectToFlow ()
 
void resetFlow ()
 
Response authenticationAction (String execution)
 
Response authenticateOnly () throws AuthenticationFlowException
 
ClientSessionContext attachSession ()
 
void evaluateRequiredActionTriggers ()
 
Response finishAuthentication (LoginProtocol protocol)
 
void validateUser (UserModel authenticatedUser)
 
String nextRequiredAction ()
 
AuthenticationProcessor.Result createAuthenticatorContext (AuthenticationExecutionModel model, Authenticator authenticator, List< AuthenticationExecutionModel > executions)
 
AuthenticationProcessor.Result createClientAuthenticatorContext (AuthenticationExecutionModel model, ClientAuthenticator clientAuthenticator, List< AuthenticationExecutionModel > executions)
 

静的公開メンバ関数

static void resetFlow (AuthenticationSessionModel authSession, String flowPath)
 
static AuthenticationSessionModel clone (KeycloakSession session, AuthenticationSessionModel authSession)
 
static ClientSessionContext attachSession (AuthenticationSessionModel authSession, UserSessionModel userSession, KeycloakSession session, RealmModel realm, ClientConnection connection, EventBuilder event)
 

静的公開変数類

static final String CURRENT_AUTHENTICATION_EXECUTION = "current.authentication.execution"
 
static final String LAST_PROCESSED_EXECUTION = "last.processed.execution"
 
static final String CURRENT_FLOW_PATH = "current.flow.path"
 
static final String FORKED_FROM = "forked.from"
 
static final String BROKER_SESSION_ID = "broker.session.id"
 
static final String BROKER_USER_ID = "broker.user.id"
 

限定公開メンバ関数

void logSuccess ()
 
Response authenticationComplete ()
 

限定公開変数類

RealmModel realm
 
UserSessionModel userSession
 
AuthenticationSessionModel authenticationSession
 
ClientConnection connection
 
UriInfo uriInfo
 
KeycloakSession session
 
EventBuilder event
 
HttpRequest request
 
String flowId
 
String flowPath
 
boolean browserFlow
 
BruteForceProtector protector
 
Runnable afterResetListener
 
FormMessage forwardedErrorMessage
 
FormMessage forwardedSuccessMessage
 
ClientModel client
 
Map< String, String > clientAuthAttributes = new HashMap<>()
 

静的限定公開変数類

static final Logger logger = Logger.getLogger(AuthenticationProcessor.class)
 

非公開メンバ関数

void checkClientSession (boolean checkAction)
 

詳解

著者
Bill Burke
バージョン
Revision
1

構築子と解体子

◆ AuthenticationProcessor()

org.keycloak.authentication.AuthenticationProcessor.AuthenticationProcessor ( )
inline
109  {
110  }

関数詳解

◆ attachSession() [1/2]

ClientSessionContext org.keycloak.authentication.AuthenticationProcessor.attachSession ( )
inline
919  {
920  ClientSessionContext clientSessionCtx = attachSession(authenticationSession, userSession, session, realm, connection, event);
921 
922  if (userSession == null) {
923  userSession = clientSessionCtx.getClientSession().getUserSession();
924  }
925 
926  return clientSessionCtx;
927  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
ClientSessionContext attachSession()
Definition: AuthenticationProcessor.java:919
UserSessionModel userSession
Definition: AuthenticationProcessor.java:83
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ attachSession() [2/2]

static ClientSessionContext org.keycloak.authentication.AuthenticationProcessor.attachSession ( AuthenticationSessionModel  authSession,
UserSessionModel  userSession,
KeycloakSession  session,
RealmModel  realm,
ClientConnection  connection,
EventBuilder  event 
)
inlinestatic
930  {
931  String username = authSession.getAuthenticatedUser().getUsername();
932  String attemptedUsername = authSession.getAuthNote(AbstractUsernameFormAuthenticator.ATTEMPTED_USERNAME);
933  if (attemptedUsername != null) username = attemptedUsername;
934  String rememberMe = authSession.getAuthNote(Details.REMEMBER_ME);
935  boolean remember = rememberMe != null && rememberMe.equalsIgnoreCase("true");
936  String brokerSessionId = authSession.getAuthNote(BROKER_SESSION_ID);
937  String brokerUserId = authSession.getAuthNote(BROKER_USER_ID);
938 
939  if (userSession == null) { // if no authenticator attached a usersession
940 
941  userSession = session.sessions().getUserSession(realm, authSession.getParentSession().getId());
942  if (userSession == null) {
943  userSession = session.sessions().createUserSession(authSession.getParentSession().getId(), realm, authSession.getAuthenticatedUser(), username, connection.getRemoteAddr(), authSession.getProtocol()
944  , remember, brokerSessionId, brokerUserId);
945  } else if (userSession.getUser() == null || !AuthenticationManager.isSessionValid(realm, userSession)) {
946  userSession.restartSession(realm, authSession.getAuthenticatedUser(), username, connection.getRemoteAddr(), authSession.getProtocol()
947  , remember, brokerSessionId, brokerUserId);
948  } else {
949  // We have existing userSession even if it wasn't attached to authenticator. Could happen if SSO authentication was ignored (eg. prompt=login) and in some other cases.
950  // We need to handle case when different user was used
951  logger.debugf("No SSO login, but found existing userSession with ID '%s' after finished authentication.", userSession.getId());
952  if (!authSession.getAuthenticatedUser().equals(userSession.getUser())) {
953  event.detail(Details.EXISTING_USER, userSession.getUser().getId());
954  event.error(Errors.DIFFERENT_USER_AUTHENTICATED);
955  throw new ErrorPageException(session, authSession, Response.Status.INTERNAL_SERVER_ERROR, Messages.DIFFERENT_USER_AUTHENTICATED, userSession.getUser().getUsername());
956  }
957  }
958  userSession.setState(UserSessionModel.State.LOGGED_IN);
959  }
960 
961  if (remember) {
962  event.detail(Details.REMEMBER_ME, "true");
963  }
964 
965  ClientSessionContext clientSessionCtx = TokenManager.attachAuthenticationSession(session, userSession, authSession);
966 
967  event.user(userSession.getUser())
968  .detail(Details.USERNAME, username)
969  .session(userSession);
970 
971  return clientSessionCtx;
972  }
static final String BROKER_USER_ID
Definition: AuthenticationProcessor.java:79
KeycloakSession session
Definition: AuthenticationProcessor.java:87
static final Logger logger
Definition: AuthenticationProcessor.java:81
static final String BROKER_SESSION_ID
Definition: AuthenticationProcessor.java:78
UserSessionModel userSession
Definition: AuthenticationProcessor.java:83
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ authenticate()

Response org.keycloak.authentication.AuthenticationProcessor.authenticate ( ) throws AuthenticationFlowException
inline
777  {
778  logger.debug("AUTHENTICATE");
779  Response challenge = authenticateOnly();
780  if (challenge != null) return challenge;
781  return authenticationComplete();
782  }
Response authenticateOnly()
Definition: AuthenticationProcessor.java:897
static final Logger logger
Definition: AuthenticationProcessor.java:81
Response authenticationComplete()
Definition: AuthenticationProcessor.java:997

◆ authenticateClient()

Response org.keycloak.authentication.AuthenticationProcessor.authenticateClient ( ) throws AuthenticationFlowException
inline
784  {
785  logger.debug("AUTHENTICATE CLIENT");
786  AuthenticationFlow authenticationFlow = createFlowExecution(this.flowId, null);
787  try {
788  Response challenge = authenticationFlow.processFlow();
789  return challenge;
790  } catch (Exception e) {
791  return handleClientAuthException(e);
792  }
793  }
AuthenticationFlow createFlowExecution(String flowId, AuthenticationExecutionModel execution)
Definition: AuthenticationProcessor.java:757
Response handleClientAuthException(Exception failure)
Definition: AuthenticationProcessor.java:733
static final Logger logger
Definition: AuthenticationProcessor.java:81
String flowId
Definition: AuthenticationProcessor.java:90

◆ authenticateOnly()

Response org.keycloak.authentication.AuthenticationProcessor.authenticateOnly ( ) throws AuthenticationFlowException
inline
897  {
898  logger.debug("AUTHENTICATE ONLY");
899  checkClientSession(false);
900  event.client(authenticationSession.getClient().getClientId())
901  .detail(Details.REDIRECT_URI, authenticationSession.getRedirectUri())
902  .detail(Details.AUTH_METHOD, authenticationSession.getProtocol());
903  String authType = authenticationSession.getAuthNote(Details.AUTH_TYPE);
904  if (authType != null) {
905  event.detail(Details.AUTH_TYPE, authType);
906  }
907  UserModel authUser = authenticationSession.getAuthenticatedUser();
908  validateUser(authUser);
909  AuthenticationFlow authenticationFlow = createFlowExecution(this.flowId, null);
910  Response challenge = authenticationFlow.processFlow();
911  if (challenge != null) return challenge;
912  if (authenticationSession.getAuthenticatedUser() == null) {
913  throw new AuthenticationFlowException(AuthenticationFlowError.UNKNOWN_USER);
914  }
915  return challenge;
916  }
AuthenticationFlow createFlowExecution(String flowId, AuthenticationExecutionModel execution)
Definition: AuthenticationProcessor.java:757
void validateUser(UserModel authenticatedUser)
Definition: AuthenticationProcessor.java:986
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
static final Logger logger
Definition: AuthenticationProcessor.java:81
String flowId
Definition: AuthenticationProcessor.java:90
void checkClientSession(boolean checkAction)
Definition: AuthenticationProcessor.java:881

◆ authenticationAction()

Response org.keycloak.authentication.AuthenticationProcessor.authenticationAction ( String  execution)
inline
847  {
848  logger.debug("authenticationAction");
849  checkClientSession(true);
850  String current = authenticationSession.getAuthNote(CURRENT_AUTHENTICATION_EXECUTION);
851  if (execution == null || !execution.equals(current)) {
852  logger.debug("Current execution does not equal executed execution. Might be a page refresh");
853  return new AuthenticationFlowURLHelper(session, realm, uriInfo).showPageExpired(authenticationSession);
854  }
855  UserModel authUser = authenticationSession.getAuthenticatedUser();
856  validateUser(authUser);
857  AuthenticationExecutionModel model = realm.getAuthenticationExecutionById(execution);
858  if (model == null) {
859  logger.debug("Cannot find execution, reseting flow");
860  logFailure();
861  resetFlow();
862  return authenticate();
863  }
864  event.client(authenticationSession.getClient().getClientId())
865  .detail(Details.REDIRECT_URI, authenticationSession.getRedirectUri())
866  .detail(Details.AUTH_METHOD, authenticationSession.getProtocol());
867  String authType = authenticationSession.getAuthNote(Details.AUTH_TYPE);
868  if (authType != null) {
869  event.detail(Details.AUTH_TYPE, authType);
870  }
871 
872  AuthenticationFlow authenticationFlow = createFlowExecution(this.flowId, model);
873  Response challenge = authenticationFlow.processAction(execution);
874  if (challenge != null) return challenge;
875  if (authenticationSession.getAuthenticatedUser() == null) {
876  throw new AuthenticationFlowException(AuthenticationFlowError.UNKNOWN_USER);
877  }
878  return authenticationComplete();
879  }
AuthenticationFlow createFlowExecution(String flowId, AuthenticationExecutionModel execution)
Definition: AuthenticationProcessor.java:757
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
void validateUser(UserModel authenticatedUser)
Definition: AuthenticationProcessor.java:986
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
void logFailure()
Definition: AuthenticationProcessor.java:619
static final Logger logger
Definition: AuthenticationProcessor.java:81
Response authenticationComplete()
Definition: AuthenticationProcessor.java:997
static final String CURRENT_AUTHENTICATION_EXECUTION
Definition: AuthenticationProcessor.java:73
String flowId
Definition: AuthenticationProcessor.java:90
RealmModel realm
Definition: AuthenticationProcessor.java:82
void resetFlow()
Definition: AuthenticationProcessor.java:805
Response authenticate()
Definition: AuthenticationProcessor.java:777
void checkClientSession(boolean checkAction)
Definition: AuthenticationProcessor.java:881

◆ authenticationComplete()

Response org.keycloak.authentication.AuthenticationProcessor.authenticationComplete ( )
inlineprotected
997  {
998  // attachSession(); // Session will be attached after requiredActions + consents are finished.
999  AuthenticationManager.setClientScopesInSession(authenticationSession);
1000 
1002  if (nextRequiredAction != null) {
1003  return AuthenticationManager.redirectToRequiredActions(session, realm, authenticationSession, uriInfo, nextRequiredAction);
1004  } else {
1005  event.detail(Details.CODE_ID, authenticationSession.getParentSession().getId()); // todo This should be set elsewhere. find out why tests fail. Don't know where this is supposed to be set
1006  // the user has successfully logged in and we can clear his/her previous login failure attempts.
1007  logSuccess();
1008  return AuthenticationManager.finishedRequiredActions(session, authenticationSession, userSession, connection, request, uriInfo, event);
1009  }
1010  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
HttpRequest request
Definition: AuthenticationProcessor.java:89
String nextRequiredAction()
Definition: AuthenticationProcessor.java:1012
UserSessionModel userSession
Definition: AuthenticationProcessor.java:83
RealmModel realm
Definition: AuthenticationProcessor.java:82
void logSuccess()
Definition: AuthenticationProcessor.java:634
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ checkClientSession()

void org.keycloak.authentication.AuthenticationProcessor.checkClientSession ( boolean  checkAction)
inlineprivate
881  {
882  ClientSessionCode code = new ClientSessionCode(session, realm, authenticationSession);
883 
884  if (checkAction) {
885  String action = AuthenticationSessionModel.Action.AUTHENTICATE.name();
886  if (!code.isValidAction(action)) {
887  throw new AuthenticationFlowException(AuthenticationFlowError.INVALID_CLIENT_SESSION);
888  }
889  }
890  if (!code.isActionActive(ClientSessionCode.ActionType.LOGIN)) {
891  throw new AuthenticationFlowException(AuthenticationFlowError.EXPIRED_CODE);
892  }
893 
894  authenticationSession.getParentSession().setTimestamp(Time.currentTime());
895  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
RealmModel realm
Definition: AuthenticationProcessor.java:82

◆ clearAuthenticatedUser()

void org.keycloak.authentication.AuthenticationProcessor.clearAuthenticatedUser ( )
inline
251  {
252  getAuthenticationSession().setAuthenticatedUser(null);
253  }
AuthenticationSessionModel getAuthenticationSession()
Definition: AuthenticationProcessor.java:144

◆ clone()

static AuthenticationSessionModel org.keycloak.authentication.AuthenticationProcessor.clone ( KeycloakSession  session,
AuthenticationSessionModel  authSession 
)
inlinestatic
828  {
829  AuthenticationSessionModel clone = authSession.getParentSession().createAuthenticationSession(authSession.getClient());
830 
831  clone.setRedirectUri(authSession.getRedirectUri());
832  clone.setProtocol(authSession.getProtocol());
833 
834  for (Map.Entry<String, String> clientNote : authSession.getClientNotes().entrySet()) {
835  clone.setClientNote(clientNote.getKey(), clientNote.getValue());
836  }
837 
838  clone.setAuthNote(FORKED_FROM, authSession.getTabId());
839 
840  logger.debugf("Forked authSession %s from authSession %s . Client: %s, Root session: %s",
841  clone.getTabId(), authSession.getTabId(), authSession.getClient().getClientId(), authSession.getParentSession().getId());
842 
843  return clone;
844  }
static final Logger logger
Definition: AuthenticationProcessor.java:81
static final String FORKED_FROM
Definition: AuthenticationProcessor.java:76
static AuthenticationSessionModel clone(KeycloakSession session, AuthenticationSessionModel authSession)
Definition: AuthenticationProcessor.java:828

◆ createAuthenticatorContext()

AuthenticationProcessor.Result org.keycloak.authentication.AuthenticationProcessor.createAuthenticatorContext ( AuthenticationExecutionModel  model,
Authenticator  authenticator,
List< AuthenticationExecutionModel >  executions 
)
inline
1016  {
1017  return new Result(model, authenticator, executions);
1018  }

◆ createClientAuthenticatorContext()

AuthenticationProcessor.Result org.keycloak.authentication.AuthenticationProcessor.createClientAuthenticatorContext ( AuthenticationExecutionModel  model,
ClientAuthenticator  clientAuthenticator,
List< AuthenticationExecutionModel >  executions 
)
inline
1020  {
1021  return new Result(model, clientAuthenticator, executions);
1022  }

◆ createFlowExecution()

AuthenticationFlow org.keycloak.authentication.AuthenticationProcessor.createFlowExecution ( String  flowId,
AuthenticationExecutionModel  execution 
)
inline
757  {
758  AuthenticationFlowModel flow = realm.getAuthenticationFlowById(flowId);
759  if (flow == null) {
760  logger.error("Unknown flow to execute with");
761  throw new AuthenticationFlowException(AuthenticationFlowError.INTERNAL_ERROR);
762  }
763  if (flow.getProviderId() == null || flow.getProviderId().equals(AuthenticationFlow.BASIC_FLOW)) {
764  DefaultAuthenticationFlow flowExecution = new DefaultAuthenticationFlow(this, flow);
765  return flowExecution;
766 
767  } else if (flow.getProviderId().equals(AuthenticationFlow.FORM_FLOW)) {
768  FormAuthenticationFlow flowExecution = new FormAuthenticationFlow(this, execution);
769  return flowExecution;
770  } else if (flow.getProviderId().equals(AuthenticationFlow.CLIENT_FLOW)) {
771  ClientAuthenticationFlow flowExecution = new ClientAuthenticationFlow(this, flow);
772  return flowExecution;
773  }
774  throw new AuthenticationFlowException("Unknown flow provider type", AuthenticationFlowError.INTERNAL_ERROR);
775  }
static final Logger logger
Definition: AuthenticationProcessor.java:81
String flowId
Definition: AuthenticationProcessor.java:90
RealmModel realm
Definition: AuthenticationProcessor.java:82

◆ evaluateRequiredActionTriggers()

void org.keycloak.authentication.AuthenticationProcessor.evaluateRequiredActionTriggers ( )
inline
974  {
975  AuthenticationManager.evaluateRequiredActionTriggers(session, authenticationSession, connection, request, uriInfo, event, realm, authenticationSession.getAuthenticatedUser());
976  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
HttpRequest request
Definition: AuthenticationProcessor.java:89
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ finishAuthentication()

Response org.keycloak.authentication.AuthenticationProcessor.finishAuthentication ( LoginProtocol  protocol)
inline
978  {
979  event.success();
980  RealmModel realm = authenticationSession.getRealm();
981  ClientSessionContext clientSessionCtx = attachSession();
982  return AuthenticationManager.redirectAfterSuccessfulFlow(session, realm, userSession, clientSessionCtx, request, uriInfo, connection, event, protocol);
983 
984  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
HttpRequest request
Definition: AuthenticationProcessor.java:89
ClientSessionContext attachSession()
Definition: AuthenticationProcessor.java:919
UserSessionModel userSession
Definition: AuthenticationProcessor.java:83
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ generateCode()

String org.keycloak.authentication.AuthenticationProcessor.generateCode ( )
inline
224  {
225  ClientSessionCode accessCode = new ClientSessionCode(session, getRealm(), getAuthenticationSession());
226  authenticationSession.getParentSession().setTimestamp(Time.currentTime());
227  return accessCode.getOrGenerateCode();
228  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
AuthenticationSessionModel getAuthenticationSession()
Definition: AuthenticationProcessor.java:144
RealmModel getRealm()
Definition: AuthenticationProcessor.java:128

◆ getAuthenticationSession()

AuthenticationSessionModel org.keycloak.authentication.AuthenticationProcessor.getAuthenticationSession ( )
inline
144  {
145  return authenticationSession;
146  }
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84

◆ getBruteForceProtector()

BruteForceProtector org.keycloak.authentication.AuthenticationProcessor.getBruteForceProtector ( )
inline
121  {
122  if (protector == null) {
123  protector = session.getProvider(BruteForceProtector.class);
124  }
125  return protector;
126  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87
BruteForceProtector protector
Definition: AuthenticationProcessor.java:93

◆ getClient()

ClientModel org.keycloak.authentication.AuthenticationProcessor.getClient ( )
inline
132  {
133  return client;
134  }
ClientModel client
Definition: AuthenticationProcessor.java:106

◆ getClientAuthAttributes()

Map<String, String> org.keycloak.authentication.AuthenticationProcessor.getClientAuthAttributes ( )
inline
140  {
141  return clientAuthAttributes;
142  }
Map< String, String > clientAuthAttributes
Definition: AuthenticationProcessor.java:107

◆ getConnection()

ClientConnection org.keycloak.authentication.AuthenticationProcessor.getConnection ( )
inline
148  {
149  return connection;
150  }
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ getEvent()

EventBuilder org.keycloak.authentication.AuthenticationProcessor.getEvent ( )
inline
235  {
236  return event;
237  }
EventBuilder event
Definition: AuthenticationProcessor.java:88

◆ getRealm()

RealmModel org.keycloak.authentication.AuthenticationProcessor.getRealm ( )
inline
128  {
129  return realm;
130  }
RealmModel realm
Definition: AuthenticationProcessor.java:82

◆ getRefreshUrl()

URI org.keycloak.authentication.AuthenticationProcessor.getRefreshUrl ( boolean  authSessionIdParam)
inline
255  {
256  UriBuilder uriBuilder = LoginActionsService.loginActionsBaseUrl(getUriInfo())
257  .path(AuthenticationProcessor.this.flowPath)
258  .queryParam(Constants.CLIENT_ID, getAuthenticationSession().getClient().getClientId())
259  .queryParam(Constants.TAB_ID, getAuthenticationSession().getTabId());
260  if (authSessionIdParam) {
261  uriBuilder.queryParam(LoginActionsService.AUTH_SESSION_ID, getAuthenticationSession().getParentSession().getId());
262  }
263  return uriBuilder
264  .build(getRealm().getName());
265  }
UriInfo getUriInfo()
Definition: AuthenticationProcessor.java:152
AuthenticationSessionModel getAuthenticationSession()
Definition: AuthenticationProcessor.java:144
ClientModel getClient()
Definition: AuthenticationProcessor.java:132
RealmModel getRealm()
Definition: AuthenticationProcessor.java:128
AuthenticationProcessor()
Definition: AuthenticationProcessor.java:109

◆ getRequest()

HttpRequest org.keycloak.authentication.AuthenticationProcessor.getRequest ( )
inline
239  {
240  return request;
241  }
HttpRequest request
Definition: AuthenticationProcessor.java:89

◆ getSession()

KeycloakSession org.keycloak.authentication.AuthenticationProcessor.getSession ( )
inline
156  {
157  return session;
158  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87

◆ getUriInfo()

UriInfo org.keycloak.authentication.AuthenticationProcessor.getUriInfo ( )
inline
152  {
153  return uriInfo;
154  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86

◆ getUserSession()

UserSessionModel org.keycloak.authentication.AuthenticationProcessor.getUserSession ( )
inline
160  {
161  return userSession;
162  }
UserSessionModel userSession
Definition: AuthenticationProcessor.java:83

◆ handleBrowserException()

Response org.keycloak.authentication.AuthenticationProcessor.handleBrowserException ( Exception  failure)
inline
656  {
657  if (failure instanceof AuthenticationFlowException) {
658  AuthenticationFlowException e = (AuthenticationFlowException) failure;
659 
660  if (e.getError() == AuthenticationFlowError.INVALID_USER) {
661  ServicesLogger.LOGGER.failedAuthentication(e);
662  event.error(Errors.USER_NOT_FOUND);
663  if (e.getResponse() != null) return e.getResponse();
664  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.INVALID_USER);
665  } else if (e.getError() == AuthenticationFlowError.USER_DISABLED) {
666  ServicesLogger.LOGGER.failedAuthentication(e);
667  event.error(Errors.USER_DISABLED);
668  if (e.getResponse() != null) return e.getResponse();
669  return ErrorPage.error(session,authenticationSession, Response.Status.BAD_REQUEST, Messages.ACCOUNT_DISABLED);
670  } else if (e.getError() == AuthenticationFlowError.USER_TEMPORARILY_DISABLED) {
671  ServicesLogger.LOGGER.failedAuthentication(e);
672  event.error(Errors.USER_TEMPORARILY_DISABLED);
673  if (e.getResponse() != null) return e.getResponse();
674  return ErrorPage.error(session,authenticationSession, Response.Status.BAD_REQUEST, Messages.INVALID_USER);
675 
676  } else if (e.getError() == AuthenticationFlowError.INVALID_CLIENT_SESSION) {
677  ServicesLogger.LOGGER.failedAuthentication(e);
678  event.error(Errors.INVALID_CODE);
679  if (e.getResponse() != null) return e.getResponse();
680  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.INVALID_CODE);
681 
682  } else if (e.getError() == AuthenticationFlowError.EXPIRED_CODE) {
683  ServicesLogger.LOGGER.failedAuthentication(e);
684  event.error(Errors.EXPIRED_CODE);
685  if (e.getResponse() != null) return e.getResponse();
686  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.EXPIRED_CODE);
687 
688  } else if (e.getError() == AuthenticationFlowError.FORK_FLOW) {
689  ForkFlowException reset = (ForkFlowException)e;
690 
691  AuthenticationSessionModel clone = clone(session, authenticationSession);
692 
693  clone.setAction(AuthenticationSessionModel.Action.AUTHENTICATE.name());
695  session.getProvider(LoginFormsProvider.class).setAuthenticationSession(clone);
696 
698  processor.setAuthenticationSession(clone)
699  .setFlowPath(LoginActionsService.AUTHENTICATE_PATH)
700  .setFlowId(AuthenticationFlowResolver.resolveBrowserFlow(clone).getId())
701  .setForwardedErrorMessage(reset.getErrorMessage())
702  .setForwardedSuccessMessage(reset.getSuccessMessage())
705  .setRealm(realm)
710  CacheControlUtil.noBackButtonCacheControlHeader();
711  return processor.authenticate();
712 
713  } else if (e.getError() == AuthenticationFlowError.DISPLAY_NOT_SUPPORTED) {
714  ServicesLogger.LOGGER.failedAuthentication(e);
715  event.error(Errors.DISPLAY_UNSUPPORTED);
716  if (e.getResponse() != null) return e.getResponse();
717  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.DISPLAY_UNSUPPORTED);
718  } else {
719  ServicesLogger.LOGGER.failedAuthentication(e);
720  event.error(Errors.INVALID_USER_CREDENTIALS);
721  if (e.getResponse() != null) return e.getResponse();
722  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.INVALID_USER);
723  }
724 
725  } else {
726  ServicesLogger.LOGGER.failedAuthentication(failure);
727  event.error(Errors.INVALID_USER_CREDENTIALS);
728  return ErrorPage.error(session, authenticationSession, Response.Status.BAD_REQUEST, Messages.UNEXPECTED_ERROR_HANDLING_REQUEST);
729  }
730 
731  }
AuthenticationProcessor setAuthenticationSession(AuthenticationSessionModel authenticationSession)
Definition: AuthenticationProcessor.java:169
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
AuthenticationProcessor setForwardedErrorMessage(FormMessage forwardedErrorMessage)
Definition: AuthenticationProcessor.java:214
AuthenticationProcessor setRequest(HttpRequest request)
Definition: AuthenticationProcessor.java:194
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
AuthenticationProcessor setSession(KeycloakSession session)
Definition: AuthenticationProcessor.java:184
HttpRequest request
Definition: AuthenticationProcessor.java:89
AuthenticationProcessor setEventBuilder(EventBuilder eventBuilder)
Definition: AuthenticationProcessor.java:189
AuthenticationProcessor setForwardedSuccessMessage(FormMessage forwardedSuccessMessage)
Definition: AuthenticationProcessor.java:219
AuthenticationProcessor setConnection(ClientConnection connection)
Definition: AuthenticationProcessor.java:174
RealmModel realm
Definition: AuthenticationProcessor.java:82
boolean isBrowserFlow()
Definition: AuthenticationProcessor.java:112
Response authenticate()
Definition: AuthenticationProcessor.java:777
AuthenticationProcessor setUriInfo(UriInfo uriInfo)
Definition: AuthenticationProcessor.java:179
AuthenticationProcessor setBrowserFlow(boolean browserFlow)
Definition: AuthenticationProcessor.java:116
static AuthenticationSessionModel clone(KeycloakSession session, AuthenticationSessionModel authSession)
Definition: AuthenticationProcessor.java:828
AuthenticationProcessor setRealm(RealmModel realm)
Definition: AuthenticationProcessor.java:164
ClientConnection connection
Definition: AuthenticationProcessor.java:85
AuthenticationProcessor()
Definition: AuthenticationProcessor.java:109

◆ handleClientAuthException()

Response org.keycloak.authentication.AuthenticationProcessor.handleClientAuthException ( Exception  failure)
inline
733  {
734  if (failure instanceof AuthenticationFlowException) {
735  AuthenticationFlowException e = (AuthenticationFlowException) failure;
736  ServicesLogger.LOGGER.failedClientAuthentication(e);
737  if (e.getError() == AuthenticationFlowError.CLIENT_NOT_FOUND) {
738  event.error(Errors.CLIENT_NOT_FOUND);
739  return ClientAuthUtil.errorResponse(Response.Status.BAD_REQUEST.getStatusCode(), "unauthorized_client", "Invalid client credentials");
740  } else if (e.getError() == AuthenticationFlowError.CLIENT_DISABLED) {
741  event.error(Errors.CLIENT_DISABLED);
742  return ClientAuthUtil.errorResponse(Response.Status.BAD_REQUEST.getStatusCode(), "unauthorized_client", "Invalid client credentials");
743  } else if (e.getError() == AuthenticationFlowError.CLIENT_CREDENTIALS_SETUP_REQUIRED) {
744  event.error(Errors.INVALID_CLIENT_CREDENTIALS);
745  return ClientAuthUtil.errorResponse(Response.Status.BAD_REQUEST.getStatusCode(), "unauthorized_client", e.getMessage());
746  } else {
747  event.error(Errors.INVALID_CLIENT_CREDENTIALS);
748  return ClientAuthUtil.errorResponse(Response.Status.BAD_REQUEST.getStatusCode(), "unauthorized_client", e.getError().toString() + ": " + e.getMessage());
749  }
750  } else {
751  ServicesLogger.LOGGER.errorAuthenticatingClient(failure);
752  event.error(Errors.INVALID_CLIENT_CREDENTIALS);
753  return ClientAuthUtil.errorResponse(Response.Status.BAD_REQUEST.getStatusCode(), "unauthorized_client", "Unexpected error when authenticating client: " + failure.getMessage());
754  }
755  }

◆ isBrowserFlow()

boolean org.keycloak.authentication.AuthenticationProcessor.isBrowserFlow ( )
inline
112  {
113  return browserFlow;
114  }
boolean browserFlow
Definition: AuthenticationProcessor.java:92

◆ isSuccessful()

boolean org.keycloak.authentication.AuthenticationProcessor.isSuccessful ( AuthenticationExecutionModel  model)
inline
650  {
651  AuthenticationSessionModel.ExecutionStatus status = authenticationSession.getExecutionStatus().get(model.getId());
652  if (status == null) return false;
653  return status == AuthenticationSessionModel.ExecutionStatus.SUCCESS;
654  }
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84

◆ logFailure()

void org.keycloak.authentication.AuthenticationProcessor.logFailure ( )
inline
619  {
620  if (realm.isBruteForceProtected()) {
621  String username = authenticationSession.getAuthNote(AbstractUsernameFormAuthenticator.ATTEMPTED_USERNAME);
622  // todo need to handle non form failures
623  if (username == null) {
624 
625  } else {
626  UserModel user = KeycloakModelUtils.findUserByNameOrEmail(session, realm, username);
627  if (user != null) {
628  getBruteForceProtector().failedLogin(realm, user, connection);
629  }
630  }
631  }
632  }
BruteForceProtector getBruteForceProtector()
Definition: AuthenticationProcessor.java:121
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ logSuccess()

void org.keycloak.authentication.AuthenticationProcessor.logSuccess ( )
inlineprotected
634  {
635  if (realm.isBruteForceProtected()) {
636  String username = authenticationSession.getAuthNote(AbstractUsernameFormAuthenticator.ATTEMPTED_USERNAME);
637  // TODO: as above, need to handle non form success
638 
639  if(username == null) {
640  return;
641  }
642 
643  UserModel user = KeycloakModelUtils.findUserByNameOrEmail(session, realm, username);
644  if (user != null) {
645  getBruteForceProtector().successfulLogin(realm, user, connection);
646  }
647  }
648  }
BruteForceProtector getBruteForceProtector()
Definition: AuthenticationProcessor.java:121
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ newEvent()

EventBuilder org.keycloak.authentication.AuthenticationProcessor.newEvent ( )
inline
230  {
231  this.event = new EventBuilder(realm, session, connection);
232  return this.event;
233  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87
EventBuilder event
Definition: AuthenticationProcessor.java:88
RealmModel realm
Definition: AuthenticationProcessor.java:82
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ nextRequiredAction()

String org.keycloak.authentication.AuthenticationProcessor.nextRequiredAction ( )
inline
1012  {
1013  return AuthenticationManager.nextRequiredAction(session, authenticationSession, connection, request, uriInfo, event);
1014  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
EventBuilder event
Definition: AuthenticationProcessor.java:88
HttpRequest request
Definition: AuthenticationProcessor.java:89
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ redirectToFlow()

Response org.keycloak.authentication.AuthenticationProcessor.redirectToFlow ( )
inline
796  {
797  URI redirect = new AuthenticationFlowURLHelper(session, realm, uriInfo).getLastExecutionUrl(authenticationSession);
798 
799  logger.debug("Redirecting to URL: " + redirect.toString());
800 
801  return Response.status(302).location(redirect).build();
802 
803  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86
KeycloakSession session
Definition: AuthenticationProcessor.java:87
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
static final Logger logger
Definition: AuthenticationProcessor.java:81
RealmModel realm
Definition: AuthenticationProcessor.java:82

◆ resetFlow() [1/2]

void org.keycloak.authentication.AuthenticationProcessor.resetFlow ( )
inline
805  {
807 
808  if (afterResetListener != null) {
809  afterResetListener.run();
810  }
811  }
Runnable afterResetListener
Definition: AuthenticationProcessor.java:94
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84
String flowPath
Definition: AuthenticationProcessor.java:91
void resetFlow()
Definition: AuthenticationProcessor.java:805

◆ resetFlow() [2/2]

static void org.keycloak.authentication.AuthenticationProcessor.resetFlow ( AuthenticationSessionModel  authSession,
String  flowPath 
)
inlinestatic
813  {
814  logger.debug("RESET FLOW");
815  authSession.getParentSession().setTimestamp(Time.currentTime());
816  authSession.setAuthenticatedUser(null);
817  authSession.clearExecutionStatus();
818  authSession.clearUserSessionNotes();
819  authSession.clearAuthNotes();
820 
821  authSession.setAction(CommonClientSessionModel.Action.AUTHENTICATE.name());
822 
823  authSession.setAuthNote(CURRENT_FLOW_PATH, flowPath);
824  }
static final Logger logger
Definition: AuthenticationProcessor.java:81
String flowPath
Definition: AuthenticationProcessor.java:91
static final String CURRENT_FLOW_PATH
Definition: AuthenticationProcessor.java:75

◆ setAuthenticationSession()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setAuthenticationSession ( AuthenticationSessionModel  authenticationSession)
inline
169  {
171  return this;
172  }
AuthenticationSessionModel authenticationSession
Definition: AuthenticationProcessor.java:84

◆ setAutheticatedUser()

void org.keycloak.authentication.AuthenticationProcessor.setAutheticatedUser ( UserModel  user)
inline
243  {
244  UserModel previousUser = getAuthenticationSession().getAuthenticatedUser();
245  if (previousUser != null && !user.getId().equals(previousUser.getId()))
246  throw new AuthenticationFlowException(AuthenticationFlowError.USER_CONFLICT);
247  validateUser(user);
248  getAuthenticationSession().setAuthenticatedUser(user);
249  }
void validateUser(UserModel authenticatedUser)
Definition: AuthenticationProcessor.java:986
AuthenticationSessionModel getAuthenticationSession()
Definition: AuthenticationProcessor.java:144

◆ setBrowserFlow()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setBrowserFlow ( boolean  browserFlow)
inline
116  {
117  this.browserFlow = browserFlow;
118  return this;
119  }
boolean browserFlow
Definition: AuthenticationProcessor.java:92

◆ setClient()

void org.keycloak.authentication.AuthenticationProcessor.setClient ( ClientModel  client)
inline
136  {
137  this.client = client;
138  }
ClientModel client
Definition: AuthenticationProcessor.java:106

◆ setConnection()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setConnection ( ClientConnection  connection)
inline
174  {
175  this.connection = connection;
176  return this;
177  }
ClientConnection connection
Definition: AuthenticationProcessor.java:85

◆ setEventBuilder()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setEventBuilder ( EventBuilder  eventBuilder)
inline
189  {
190  this.event = eventBuilder;
191  return this;
192  }

◆ setFlowId()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setFlowId ( String  flowId)
inline
199  {
200  this.flowId = flowId;
201  return this;
202  }
String flowId
Definition: AuthenticationProcessor.java:90

◆ setFlowPath()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setFlowPath ( String  flowPath)
inline

This is the path segment to append when generating an action URL.

引数
flowPath
209  {
210  this.flowPath = flowPath;
211  return this;
212  }
String flowPath
Definition: AuthenticationProcessor.java:91

◆ setForwardedErrorMessage()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setForwardedErrorMessage ( FormMessage  forwardedErrorMessage)
inline
214  {
216  return this;
217  }
FormMessage forwardedErrorMessage
Definition: AuthenticationProcessor.java:98

◆ setForwardedSuccessMessage()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setForwardedSuccessMessage ( FormMessage  forwardedSuccessMessage)
inline
219  {
221  return this;
222  }
FormMessage forwardedSuccessMessage
Definition: AuthenticationProcessor.java:103

◆ setRealm()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setRealm ( RealmModel  realm)
inline
164  {
165  this.realm = realm;
166  return this;
167  }
RealmModel realm
Definition: AuthenticationProcessor.java:82

◆ setRequest()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setRequest ( HttpRequest  request)
inline
194  {
195  this.request = request;
196  return this;
197  }
HttpRequest request
Definition: AuthenticationProcessor.java:89

◆ setSession()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setSession ( KeycloakSession  session)
inline
184  {
185  this.session = session;
186  return this;
187  }
KeycloakSession session
Definition: AuthenticationProcessor.java:87

◆ setUriInfo()

AuthenticationProcessor org.keycloak.authentication.AuthenticationProcessor.setUriInfo ( UriInfo  uriInfo)
inline
179  {
180  this.uriInfo = uriInfo;
181  return this;
182  }
UriInfo uriInfo
Definition: AuthenticationProcessor.java:86

◆ validateUser()

void org.keycloak.authentication.AuthenticationProcessor.validateUser ( UserModel  authenticatedUser)
inline
986  {
987  if (authenticatedUser == null) return;
988  if (!authenticatedUser.isEnabled()) throw new AuthenticationFlowException(AuthenticationFlowError.USER_DISABLED);
989  if (realm.isBruteForceProtected() && !realm.isPermanentLockout()) {
990  if (getBruteForceProtector().isTemporarilyDisabled(session, realm, authenticatedUser)) {
991  getEvent().error(Errors.RESET_CREDENTIAL_DISABLED);
992  ServicesLogger.LOGGER.passwordResetFailed(new AuthenticationFlowException(AuthenticationFlowError.USER_TEMPORARILY_DISABLED));
993  }
994  }
995  }
BruteForceProtector getBruteForceProtector()
Definition: AuthenticationProcessor.java:121
KeycloakSession session
Definition: AuthenticationProcessor.java:87
RealmModel realm
Definition: AuthenticationProcessor.java:82
EventBuilder getEvent()
Definition: AuthenticationProcessor.java:235

メンバ詳解

◆ afterResetListener

Runnable org.keycloak.authentication.AuthenticationProcessor.afterResetListener
protected

◆ authenticationSession

AuthenticationSessionModel org.keycloak.authentication.AuthenticationProcessor.authenticationSession
protected

◆ BROKER_SESSION_ID

final String org.keycloak.authentication.AuthenticationProcessor.BROKER_SESSION_ID = "broker.session.id"
static

◆ BROKER_USER_ID

final String org.keycloak.authentication.AuthenticationProcessor.BROKER_USER_ID = "broker.user.id"
static

◆ browserFlow

boolean org.keycloak.authentication.AuthenticationProcessor.browserFlow
protected

◆ client

ClientModel org.keycloak.authentication.AuthenticationProcessor.client
protected

◆ clientAuthAttributes

Map<String, String> org.keycloak.authentication.AuthenticationProcessor.clientAuthAttributes = new HashMap<>()
protected

◆ connection

ClientConnection org.keycloak.authentication.AuthenticationProcessor.connection
protected

◆ CURRENT_AUTHENTICATION_EXECUTION

final String org.keycloak.authentication.AuthenticationProcessor.CURRENT_AUTHENTICATION_EXECUTION = "current.authentication.execution"
static

◆ CURRENT_FLOW_PATH

final String org.keycloak.authentication.AuthenticationProcessor.CURRENT_FLOW_PATH = "current.flow.path"
static

◆ event

EventBuilder org.keycloak.authentication.AuthenticationProcessor.event
protected

◆ flowId

String org.keycloak.authentication.AuthenticationProcessor.flowId
protected

◆ flowPath

String org.keycloak.authentication.AuthenticationProcessor.flowPath
protected

◆ FORKED_FROM

final String org.keycloak.authentication.AuthenticationProcessor.FORKED_FROM = "forked.from"
static

◆ forwardedErrorMessage

FormMessage org.keycloak.authentication.AuthenticationProcessor.forwardedErrorMessage
protected

This could be an error message forwarded from another authenticator

◆ forwardedSuccessMessage

FormMessage org.keycloak.authentication.AuthenticationProcessor.forwardedSuccessMessage
protected

This could be an success message forwarded from another authenticator

◆ LAST_PROCESSED_EXECUTION

final String org.keycloak.authentication.AuthenticationProcessor.LAST_PROCESSED_EXECUTION = "last.processed.execution"
static

◆ logger

final Logger org.keycloak.authentication.AuthenticationProcessor.logger = Logger.getLogger(AuthenticationProcessor.class)
staticprotected

◆ protector

BruteForceProtector org.keycloak.authentication.AuthenticationProcessor.protector
protected

◆ realm

RealmModel org.keycloak.authentication.AuthenticationProcessor.realm
protected

◆ request

HttpRequest org.keycloak.authentication.AuthenticationProcessor.request
protected

◆ session

KeycloakSession org.keycloak.authentication.AuthenticationProcessor.session
protected

◆ uriInfo

UriInfo org.keycloak.authentication.AuthenticationProcessor.uriInfo
protected

◆ userSession

UserSessionModel org.keycloak.authentication.AuthenticationProcessor.userSession
protected

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