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

公開メンバ関数

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

限定公開メンバ関数

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

非公開メンバ関数

String [] getUsernameAndPassword (final HttpHeaders httpHeaders)
 

静的非公開変数類

static final String BASIC = "Basic"
 
static final String BASIC_PREFIX = BASIC + " "
 

詳解

関数詳解

◆ action()

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

◆ authenticate()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.authenticate ( final AuthenticationFlowContext  context)
inline
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 ( )
inline
129  {
130 
131  }

◆ configuredFor()

boolean org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.configuredFor ( final KeycloakSession  session,
final RealmModel  realm,
final UserModel  user 
)
inline
119  {
120  return false;
121  }

◆ getUsernameAndPassword()

String [] org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.getUsernameAndPassword ( final HttpHeaders  httpHeaders)
inlineprivate
77  {
78  final List<String> authHeaders = httpHeaders.getRequestHeader(HttpHeaders.AUTHORIZATION);
79 
80  if (authHeaders == null || authHeaders.size() == 0) {
81  return null;
82  }
83 
84  String credentials = null;
85 
86  for (final String authHeader : authHeaders) {
87  if (authHeader.startsWith(BASIC_PREFIX)) {
88  final String[] split = authHeader.trim().split("\\s+");
89 
90  if (split == null || split.length != 2) return null;
91 
92  credentials = split[1];
93  }
94  }
95 
96  try {
97  String val = new String(Base64.decode(credentials));
98  int seperatorIndex = val.indexOf(":");
99  if(seperatorIndex == -1) return new String[]{val};
100  String user = val.substring(0, seperatorIndex);
101  String pw = val.substring(seperatorIndex + 1);
102  return new String[]{user,pw};
103  } catch (final IOException e) {
104  throw new RuntimeException("Failed to parse credentials.", e);
105  }
106  }
static final String BASIC_PREFIX
Definition: HttpBasicAuthenticator.java:22

◆ notValidCredentialsAction()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.notValidCredentialsAction ( final AuthenticationFlowContext  context,
final RealmModel  realm,
final UserModel  user 
)
inlineprotected
69  {
70  context.getEvent().user(user);
71  context.getEvent().error(Errors.INVALID_USER_CREDENTIALS);
72  context.failure(AuthenticationFlowError.INVALID_USER, Response.status(Response.Status.UNAUTHORIZED)
73  .header(HttpHeaders.WWW_AUTHENTICATE, BASIC_PREFIX + "realm=\"" + realm.getName() + "\"")
74  .build());
75  }
static final String BASIC_PREFIX
Definition: HttpBasicAuthenticator.java:22

◆ nullUserAction()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.nullUserAction ( final AuthenticationFlowContext  context,
final RealmModel  realm,
final String  user 
)
inlineprotected
65  {
66  // no-op by default
67  }

◆ requiresUser()

boolean org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.requiresUser ( )
inline
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 
)
inline
124  {
125 
126  }

◆ userDisabledAction()

void org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.userDisabledAction ( AuthenticationFlowContext  context,
RealmModel  realm,
UserModel  user 
)
inlineprotected
61  {
62  userSuccessAction(context, user);
63  }
void userSuccessAction(AuthenticationFlowContext context, UserModel user)
Definition: HttpBasicAuthenticator.java:56

◆ userSuccessAction()

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

メンバ詳解

◆ BASIC

final String org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.BASIC = "Basic"
staticprivate

◆ BASIC_PREFIX

final String org.keycloak.protocol.saml.profile.ecp.authenticator.HttpBasicAuthenticator.BASIC_PREFIX = BASIC + " "
staticprivate

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