keycloak
公開メンバ関数 | 公開変数類 | 非公開変数類 | 静的非公開変数類 | 全メンバ一覧
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 ()
 
default Integer parseInteger (String value, Integer defaultValue)
 

公開変数類

String STRING_CONFIG_TYPE = "String"
 
String INT_CONFIG_TYPE = "int"
 

非公開変数類

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

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

80  {
81  }

◆ parseConfig()

Object org.keycloak.policy.HistoryPasswordPolicyProvider.parseConfig ( String  value)
inline

org.keycloak.policy.PasswordPolicyProviderを実装しています。

75  {
76  return parseInteger(value, HistoryPasswordPolicyProviderFactory.DEFAULT_VALUE);
77  }
default Integer parseInteger(String value, Integer defaultValue)
Definition: PasswordPolicyProvider.java:36

◆ parseInteger()

default Integer org.keycloak.policy.PasswordPolicyProvider.parseInteger ( String  value,
Integer  defaultValue 
)
inlineinherited
36  {
37  try {
38  return value != null ? Integer.parseInt(value) : defaultValue;
39  } catch (NumberFormatException e) {
40  throw new PasswordPolicyConfigException("Not a valid number");
41  }
42  }

◆ validate() [1/2]

PolicyError org.keycloak.policy.HistoryPasswordPolicyProvider.validate ( String  username,
String  password 
)
inline

org.keycloak.policy.PasswordPolicyProviderを実装しています。

45  {
46  return null;
47  }

◆ validate() [2/2]

PolicyError org.keycloak.policy.HistoryPasswordPolicyProvider.validate ( RealmModel  realm,
UserModel  user,
String  password 
)
inline

org.keycloak.policy.PasswordPolicyProviderを実装しています。

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  }
UserCredentialManager userCredentialManager()
PasswordPolicy getPasswordPolicy()
< T extends Provider > T getProvider(Class< T > clazz)
KeycloakSession session
Definition: HistoryPasswordPolicyProvider.java:38
List< CredentialModel > getStoredCredentialsByType(RealmModel realm, UserModel user, String type)
public< T > T getPolicyConfig(String key)
Definition: PasswordPolicy.java:70
static final String ERROR_MESSAGE
Definition: HistoryPasswordPolicyProvider.java:36

メンバ詳解

◆ ERROR_MESSAGE

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

◆ INT_CONFIG_TYPE

String org.keycloak.policy.PasswordPolicyProvider.INT_CONFIG_TYPE = "int"
inherited

◆ logger

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

◆ session

KeycloakSession org.keycloak.policy.HistoryPasswordPolicyProvider.session
private

◆ STRING_CONFIG_TYPE

String org.keycloak.policy.PasswordPolicyProvider.STRING_CONFIG_TYPE = "String"
inherited

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