Passay-m-of-n-rules
提供:Dev Guides
Passay-MのNルール
多くの場合、パスワードポリシーは、パスワードなどの特定のルールのうちの最小ルールへの準拠を義務付けており、少なくともM of Nルールに準拠する必要があります。 次のポリシーを考慮してください。
- パスワードの長さは8〜16文字にする必要があります。
- パスワードには空白を含めないでください。
- パスワードには、上、下、数字、または記号のうち少なくとも3つを含める必要があります。
例
次の例は、Passayライブラリを使用した上記のポリシーに対するパスワードの検証を示しています。
import java.io.FileNotFoundException;
import java.io.IOException;
import org.passay.CharacterCharacteristicsRule;
import org.passay.CharacterRule;
import org.passay.EnglishCharacterData;
import org.passay.LengthRule;
import org.passay.PasswordData;
import org.passay.PasswordValidator;
import org.passay.Rule;
import org.passay.RuleResult;
import org.passay.WhitespaceRule;
public class PassayExample {
public static void main(String[] args) throws FileNotFoundException, IOException {
//Rule 1: Password length should be in between
//8 and 16 characters
Rule rule1 = new LengthRule(8, 16);
//Rule 2: No whitespace allowed
Rule rule2 = new WhitespaceRule();
CharacterCharacteristicsRule rule3 = new CharacterCharacteristicsRule();
//M - Mandatory characters count
rule3.setNumberOfCharacteristics(3);
//Rule 3.a: One Upper-case character
rule3.getRules().add(new CharacterRule(EnglishCharacterData.UpperCase, 1));
//Rule 3.b: One Lower-case character
rule3.getRules().add(new CharacterRule(EnglishCharacterData.LowerCase, 1));
//Rule 3.c: One digit
rule3.getRules().add(new CharacterRule(EnglishCharacterData.Digit, 1));
//Rule 3.d: One special character
rule3.getRules().add(new CharacterRule(EnglishCharacterData.Special, 1));
PasswordValidator validator = new PasswordValidator(rule1, rule2, rule3);
PasswordData password = new PasswordData("microsoft@123");
RuleResult result = validator.validate(password);
if(result.isValid()){
System.out.println("Password validated.");
} else {
System.out.println("Invalid Password: " + validator.getMessages(result));
}
}
}
出力
Password validated.