パスワード ポリシーのコードを書いています。
ポリシーによると、既に使用したものと同じ文字を使用することはできません。例: パスワード - 「s」が 2 つあるためパスワードを使用できません
どうやってやるの?
編集:
これが私の完全な実装です:
private static final String PASSWORD_DUPLICATE_CHARACTERS = "^(?:([a-zA-Z])(?!.*\\1))$";
pattern = Pattern.compile(PASSWORD_DUPLICATE_CHARACTERS);
this.checkForDuplicateLetters(LDAPNewUserPassword);
private boolean checkForDuplicateLetters(final String newPassword) throws LDAPException{
LoggingEnt userEnt = new LoggingEnt();
String userid = userEnt.getUseridCode();
boolean foundDuplicate = false;
matcher = pattern.matcher(newPassword);
if (newPassword.matches(PASSWORD_DUPLICATE_LETTERS)){
foundDuplicate = true;
userEnt.setMsg1("Duplicate.");
throw new LDAPException("Invalid password combination for " + userid, LDAPException.INVALID_CREDENTIALS);//BAristo
} else {
userEnt.setMsg1("Your password has been successfully changed.");
}
return matcher.matches();
}