keycloak-spi-private
公開メンバ関数 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
org.keycloak.policy.HistoryPasswordPolicyProvider クラス
org.keycloak.policy.HistoryPasswordPolicyProvider の継承関係図
Inheritance graph
org.keycloak.policy.HistoryPasswordPolicyProvider 連携図
Collaboration graph

公開メンバ関数

 HistoryPasswordPolicyProvider (KeycloakSession session)
 
PolicyError validate (String username, String password)
 
PolicyError validate (RealmModel realm, UserModel user, String password)
 
Object parseConfig (String value)
 
void close ()
 

非公開変数類

KeycloakSession session
 

静的非公開変数類

static final Logger logger = Logger.getLogger(HistoryPasswordPolicyProvider.class)
 
static final String ERROR_MESSAGE = "invalidPasswordHistoryMessage"
 

詳解

著者
Stian Thorgersen

構築子と解体子

◆ HistoryPasswordPolicyProvider()

org.keycloak.policy.HistoryPasswordPolicyProvider.HistoryPasswordPolicyProvider ( KeycloakSession  session)
inline
40  {
41  this.session = session;
42  }
KeycloakSession session
Definition: HistoryPasswordPolicyProvider.java:38

関数詳解

◆ close()

void org.keycloak.policy.HistoryPasswordPolicyProvider.close ( )
inline
80  {
81  }

◆ parseConfig()

Object org.keycloak.policy.HistoryPasswordPolicyProvider.parseConfig ( String  value)
inline
75  {
76  return parseInteger(value, HistoryPasswordPolicyProviderFactory.DEFAULT_VALUE);
77  }

◆ validate() [1/2]

PolicyError org.keycloak.policy.HistoryPasswordPolicyProvider.validate ( String  username,
String  password 
)
inline
45  {
46  return null;
47  }

◆ validate() [2/2]

PolicyError org.keycloak.policy.HistoryPasswordPolicyProvider.validate ( RealmModel  realm,
UserModel  user,
String  password 
)
inline
50  {
51  PasswordPolicy policy = session.getContext().getRealm().getPasswordPolicy();
52  int passwordHistoryPolicyValue = policy.getPolicyConfig(PasswordPolicy.PASSWORD_HISTORY_ID);
53  if (passwordHistoryPolicyValue != -1) {
54  List<CredentialModel> storedPasswords = session.userCredentialManager().getStoredCredentialsByType(realm, user, CredentialModel.PASSWORD);
55  for (CredentialModel cred : storedPasswords) {
56  PasswordHashProvider hash = session.getProvider(PasswordHashProvider.class, cred.getAlgorithm());
57  if (hash == null) continue;
58  if (hash.verify(password, cred)) {
59  return new PolicyError(ERROR_MESSAGE, passwordHistoryPolicyValue);
60  }
61  }
62  List<CredentialModel> passwordHistory = session.userCredentialManager().getStoredCredentialsByType(realm, user, CredentialModel.PASSWORD_HISTORY);
63  for (CredentialModel cred : passwordHistory) {
64  PasswordHashProvider hash = session.getProvider(PasswordHashProvider.class, cred.getAlgorithm());
65  if (hash.verify(password, cred)) {
66  return new PolicyError(ERROR_MESSAGE, passwordHistoryPolicyValue);
67  }
68 
69  }
70  }
71  return null;
72  }
static final String ERROR_MESSAGE
Definition: HistoryPasswordPolicyProvider.java:36
KeycloakSession session
Definition: HistoryPasswordPolicyProvider.java:38

メンバ詳解

◆ ERROR_MESSAGE

final String org.keycloak.policy.HistoryPasswordPolicyProvider.ERROR_MESSAGE = "invalidPasswordHistoryMessage"
staticprivate

◆ logger

final Logger org.keycloak.policy.HistoryPasswordPolicyProvider.logger = Logger.getLogger(HistoryPasswordPolicyProvider.class)
staticprivate

◆ session

KeycloakSession org.keycloak.policy.HistoryPasswordPolicyProvider.session
private

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