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

公開メンバ関数

void authenticate (AuthenticationFlowContext context)
 
void action (AuthenticationFlowContext context)
 
boolean requiresUser ()
 
boolean configuredFor (KeycloakSession session, RealmModel realm, UserModel user)
 
void setRequiredActions (KeycloakSession session, RealmModel realm, UserModel user)
 
String getDisplayType ()
 
String getReferenceCategory ()
 
boolean isConfigurable ()
 
AuthenticationExecutionModel.Requirement [] getRequirementChoices ()
 
boolean isUserSetupAllowed ()
 
String getHelpText ()
 
List< ProviderConfigPropertygetConfigProperties ()
 
void close ()
 
Authenticator create (KeycloakSession session)
 
void init (Config.Scope config)
 
void postInit (KeycloakSessionFactory factory)
 
String getId ()
 
default int order ()
 

静的公開変数類

static final String PROVIDER_ID = "reset-credentials-choose-user"
 
static final AuthenticationExecutionModel.Requirement [] REQUIREMENT_CHOICES
 

静的非公開変数類

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

詳解

著者
Bill Burke
バージョン
Revision
1

関数詳解

◆ action()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.action ( AuthenticationFlowContext  context)
inline

org.keycloak.authentication.Authenticatorを実装しています。

80  {
81  EventBuilder event = context.getEvent();
82  MultivaluedMap<String, String> formData = context.getHttpRequest().getDecodedFormParameters();
83  String username = formData.getFirst("username");
84  if (username == null || username.isEmpty()) {
85  event.error(Errors.USERNAME_MISSING);
86  Response challenge = context.form()
90  return;
91  }
92 
93  username = username.trim();
94 
95  RealmModel realm = context.getRealm();
96  UserModel user = context.getSession().users().getUserByUsername(username, realm);
97  if (user == null && realm.isLoginWithEmailAllowed() && username.contains("@")) {
98  user = context.getSession().users().getUserByEmail(username, realm);
99  }
100 
102 
103  // we don't want people guessing usernames, so if there is a problem, just continue, but don't set the user
104  // a null user will notify further executions, that this was a failure.
105  if (user == null) {
106  event.clone()
107  .detail(Details.USERNAME, username)
108  .error(Errors.USER_NOT_FOUND);
109  } else if (!user.isEnabled()) {
110  event.clone()
111  .detail(Details.USERNAME, username)
112  .user(user).error(Errors.USER_DISABLED);
113  } else {
114  context.setUser(user);
115  }
116 
117  context.success();
118  }
Definition: UserModel.java:30
LoginFormsProvider setError(String message, Object ... parameters)
Definition: AuthenticationFlowError.java:26
static final String MISSING_USERNAME
Definition: Messages.java:49
String USERNAME
Definition: Details.java:39
String USERNAME_MISSING
Definition: Errors.java:42
void setAuthNote(String name, String value)
INVALID_USER
Definition: AuthenticationFlowError.java:29
String USER_DISABLED
Definition: Errors.java:37
Definition: Messages.java:22
static final String ATTEMPTED_USERNAME
Definition: AbstractUsernameFormAuthenticator.java:52
Definition: Errors.java:23
String USER_NOT_FOUND
Definition: Errors.java:36
UserModel getUserByEmail(String email, RealmModel realm)
AuthenticationSessionModel getAuthenticationSession()
Definition: EventBuilder.java:37
UserModel getUserByUsername(String username, RealmModel realm)
void failureChallenge(AuthenticationFlowError error, Response challenge)
Definition: Details.java:23
Definition: RealmModel.java:34

◆ authenticate()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.authenticate ( AuthenticationFlowContext  context)
inline

org.keycloak.authentication.Authenticatorを実装しています。

52  {
53  String existingUserId = context.getAuthenticationSession().getAuthNote(AbstractIdpAuthenticator.EXISTING_USER_INFO);
54  if (existingUserId != null) {
55  UserModel existingUser = AbstractIdpAuthenticator.getExistingUser(context.getSession(), context.getRealm(), context.getAuthenticationSession());
56 
57  logger.debugf("Forget-password triggered when reauthenticating user after first broker login. Skipping reset-credential-choose-user screen and using user '%s' ", existingUser.getUsername());
58  context.setUser(existingUser);
59  context.success();
60  return;
61  }
62 
63  String actionTokenUserId = context.getAuthenticationSession().getAuthNote(DefaultActionTokenKey.ACTION_TOKEN_USER_ID);
64  if (actionTokenUserId != null) {
65  UserModel existingUser = context.getSession().users().getUserById(actionTokenUserId, context.getRealm());
66 
67  // Action token logics handles checks for user ID validity and user being enabled
68 
69  logger.debugf("Forget-password triggered when reauthenticating user after authentication via action token. Skipping reset-credential-choose-user screen and using user '%s' ", existingUser.getUsername());
70  context.setUser(existingUser);
71  context.success();
72  return;
73  }
74 
75  Response challenge = context.form().createPasswordReset();
76  context.challenge(challenge);
77  }
Definition: UserModel.java:30
static final Logger logger
Definition: ResetCredentialChooseUser.java:47
AuthenticationSessionModel getAuthenticationSession()
UserModel getUserById(String id, RealmModel realm)

◆ close()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.close ( )
inline

org.keycloak.provider.Providerを実装しています。

175  {
176 
177  }

◆ configuredFor()

boolean org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.configuredFor ( KeycloakSession  session,
RealmModel  realm,
UserModel  user 
)
inline

org.keycloak.authentication.Authenticatorを実装しています。

126  {
127  return true;
128  }

◆ create()

Authenticator org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.create ( KeycloakSession  session)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

180  {
181  return this;
182  }

◆ getConfigProperties()

List<ProviderConfigProperty> org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getConfigProperties ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

170  {
171  return null;
172  }

◆ getDisplayType()

String org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getDisplayType ( )
inline

org.keycloak.authentication.ConfigurableAuthenticatorFactoryを実装しています。

136  {
137  return "Choose User";
138  }

◆ getHelpText()

String org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getHelpText ( )
inline

org.keycloak.provider.ConfiguredProviderを実装しています。

165  {
166  return "Choose a user to reset credentials for";
167  }

◆ getId()

String org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getId ( )
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

195  {
196  return PROVIDER_ID;
197  }
static final String PROVIDER_ID
Definition: ResetCredentialChooseUser.java:49

◆ getReferenceCategory()

String org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getReferenceCategory ( )
inline

org.keycloak.authentication.ConfigurableAuthenticatorFactoryを実装しています。

141  {
142  return null;
143  }

◆ getRequirementChoices()

AuthenticationExecutionModel.Requirement [] org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.getRequirementChoices ( )
inline

org.keycloak.authentication.ConfigurableAuthenticatorFactoryを実装しています。

155  {
156  return REQUIREMENT_CHOICES;
157  }
static final AuthenticationExecutionModel.Requirement [] REQUIREMENT_CHOICES
Definition: ResetCredentialChooseUser.java:150

◆ init()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.init ( Config.Scope  config)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

185  {
186 
187  }

◆ isConfigurable()

boolean org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.isConfigurable ( )
inline

org.keycloak.authentication.ConfigurableAuthenticatorFactoryを実装しています。

146  {
147  return false;
148  }

◆ isUserSetupAllowed()

boolean org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.isUserSetupAllowed ( )
inline

org.keycloak.authentication.ConfigurableAuthenticatorFactoryを実装しています。

160  {
161  return false;
162  }

◆ order()

default int org.keycloak.provider.ProviderFactory< T extends Provider >.order ( )
inlineinherited

◆ postInit()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.postInit ( KeycloakSessionFactory  factory)
inline

org.keycloak.provider.ProviderFactory< T extends Provider >を実装しています。

190  {
191 
192  }

◆ requiresUser()

boolean org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.requiresUser ( )
inline

org.keycloak.authentication.Authenticatorを実装しています。

121  {
122  return false;
123  }

◆ setRequiredActions()

void org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.setRequiredActions ( KeycloakSession  session,
RealmModel  realm,
UserModel  user 
)
inline

org.keycloak.authentication.Authenticatorを実装しています。

131  {
132 
133  }

メンバ詳解

◆ logger

final Logger org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.logger = Logger.getLogger(ResetCredentialChooseUser.class)
staticprivate

◆ PROVIDER_ID

final String org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.PROVIDER_ID = "reset-credentials-choose-user"
static

◆ REQUIREMENT_CHOICES

final AuthenticationExecutionModel.Requirement [] org.keycloak.authentication.authenticators.resetcred.ResetCredentialChooseUser.REQUIREMENT_CHOICES
static
初期値:
= {
AuthenticationExecutionModel.Requirement.REQUIRED
}

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