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

公開メンバ関数

boolean configuredFor (KeycloakSession session, RealmModel realm, UserModel user)
 
void authenticate (final AuthenticationFlowContext context)
 
void action (final AuthenticationFlowContext context)
 
boolean requiresUser ()
 
void setRequiredActions (final KeycloakSession session, final RealmModel realm, final UserModel user)
 
void close ()
 

静的公開変数類

static final String ID = "docker-http-basic-authenticator"
 

限定公開メンバ関数

void notValidCredentialsAction (final AuthenticationFlowContext context, final RealmModel realm, final UserModel user)
 
void nullUserAction (final AuthenticationFlowContext context, final RealmModel realm, final String userId)
 
void userDisabledAction (AuthenticationFlowContext context, RealmModel realm, UserModel user)
 
void userSuccessAction (AuthenticationFlowContext context, UserModel user)
 

非公開メンバ関数

void invalidUserAction (final AuthenticationFlowContext context, final RealmModel realm, final String userId, final Locale locale)
 

静的非公開変数類

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

詳解

関数詳解

◆ action()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.action ( final AuthenticationFlowContext  context)
inlineinherited
109  {
110 
111  }

◆ authenticate()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.authenticate ( final AuthenticationFlowContext  context)
inlineinherited
25  {
26  final HttpRequest httpRequest = context.getHttpRequest();
27  final HttpHeaders httpHeaders = httpRequest.getHttpHeaders();
28  final String[] usernameAndPassword = getUsernameAndPassword(httpHeaders);
29 
30  context.attempted();
31 
32  if (usernameAndPassword != null) {
33  final RealmModel realm = context.getRealm();
34  final String username = usernameAndPassword[0];
35  final UserModel user = context.getSession().users().getUserByUsername(username, realm);
36 
37  if (user != null) {
38  final String password = usernameAndPassword[1];
39  final boolean valid = context.getSession().userCredentialManager().isValid(realm, user, UserCredentialModel.password(password));
40 
41  if (valid) {
42  if (user.isEnabled()) {
43  userSuccessAction(context, user);
44  } else {
45  userDisabledAction(context, realm, user);
46  }
47  } else {
48  notValidCredentialsAction(context, realm, user);
49  }
50  } else {
51  nullUserAction(context, realm, username);
52  }
53  }
54  }
String [] getUsernameAndPassword(final HttpHeaders httpHeaders)
Definition: HttpBasicAuthenticator.java:77
void userDisabledAction(AuthenticationFlowContext context, RealmModel realm, UserModel user)
Definition: HttpBasicAuthenticator.java:61
void notValidCredentialsAction(final AuthenticationFlowContext context, final RealmModel realm, final UserModel user)
Definition: HttpBasicAuthenticator.java:69
void userSuccessAction(AuthenticationFlowContext context, UserModel user)
Definition: HttpBasicAuthenticator.java:56
void nullUserAction(final AuthenticationFlowContext context, final RealmModel realm, final String user)
Definition: HttpBasicAuthenticator.java:65

◆ close()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.close ( )
inlineinherited
129  {
130 
131  }

◆ configuredFor()

boolean org.keycloak.protocol.docker.DockerAuthenticator.configuredFor ( KeycloakSession  session,
RealmModel  realm,
UserModel  user 
)
inline
73  {
74  return true;
75  }

◆ invalidUserAction()

void org.keycloak.protocol.docker.DockerAuthenticator.invalidUserAction ( final AuthenticationFlowContext  context,
final RealmModel  realm,
final String  userId,
final Locale  locale 
)
inlineprivate

For Docker protocol the same error message will be returned for invalid credentials and incorrect user name. For SAML ECP, there is a different behavior for each.

58  {
59  context.getEvent().user(userId);
60  context.getEvent().error(Errors.INVALID_USER_CREDENTIALS);
61 
62  final DockerError error = new DockerError("UNAUTHORIZED","Invalid username or password.",
63  Collections.singletonList(new DockerAccess(context.getAuthenticationSession().getClientNote(DockerAuthV2Protocol.SCOPE_PARAM))));
64 
65  context.failure(AuthenticationFlowError.INVALID_USER, new ResponseBuilderImpl()
66  .status(Response.Status.UNAUTHORIZED)
67  .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
68  .entity(new DockerErrorResponseToken(Collections.singletonList(error)))
69  .build());
70  }

◆ notValidCredentialsAction()

void org.keycloak.protocol.docker.DockerAuthenticator.notValidCredentialsAction ( final AuthenticationFlowContext  context,
final RealmModel  realm,
final UserModel  user 
)
inlineprotected
29  {
30  invalidUserAction(context, realm, user.getUsername(), context.getSession().getContext().resolveLocale(user));
31  }
void invalidUserAction(final AuthenticationFlowContext context, final RealmModel realm, final String userId, final Locale locale)
Definition: DockerAuthenticator.java:58

◆ nullUserAction()

void org.keycloak.protocol.docker.DockerAuthenticator.nullUserAction ( final AuthenticationFlowContext  context,
final RealmModel  realm,
final String  userId 
)
inlineprotected
34  {
35  final String localeString = Optional.ofNullable(realm.getDefaultLocale()).orElse(Locale.ENGLISH.toString());
36  invalidUserAction(context, realm, userId, new Locale(localeString));
37  }
void invalidUserAction(final AuthenticationFlowContext context, final RealmModel realm, final String userId, final Locale locale)
Definition: DockerAuthenticator.java:58

◆ requiresUser()

boolean org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.requiresUser ( )
inlineinherited
114  {
115  return false;
116  }

◆ setRequiredActions()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.setRequiredActions ( final KeycloakSession  session,
final RealmModel  realm,
final UserModel  user 
)
inlineinherited
124  {
125 
126  }

◆ userDisabledAction()

void org.keycloak.protocol.docker.DockerAuthenticator.userDisabledAction ( AuthenticationFlowContext  context,
RealmModel  realm,
UserModel  user 
)
inlineprotected
40  {
41  context.getEvent().user(user);
42  context.getEvent().error(Errors.USER_DISABLED);
43 
44  final DockerError error = new DockerError("UNAUTHORIZED","Invalid username or password.",
45  Collections.singletonList(new DockerAccess(context.getAuthenticationSession().getClientNote(DockerAuthV2Protocol.SCOPE_PARAM))));
46 
47  context.failure(AuthenticationFlowError.USER_DISABLED, new ResponseBuilderImpl()
48  .status(Response.Status.UNAUTHORIZED)
49  .header(HttpHeaders.CONTENT_TYPE, MediaType.APPLICATION_JSON)
50  .entity(new DockerErrorResponseToken(Collections.singletonList(error)))
51  .build());
52  }

◆ userSuccessAction()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.userSuccessAction ( AuthenticationFlowContext  context,
UserModel  user 
)
inlineprotectedinherited
56  {
57  context.getAuthenticationSession().setAuthenticatedUser(user);
58  context.success();
59  }

メンバ詳解

◆ ID

final String org.keycloak.protocol.docker.DockerAuthenticator.ID = "docker-http-basic-authenticator"
static

◆ logger

final Logger org.keycloak.protocol.docker.DockerAuthenticator.logger = Logger.getLogger(DockerAuthenticator.class)
staticprivate

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