public static PasswordValidator validator(GenericPasswordPolicy policy, MessageResolver messageResolver) { List<Rule> rules = new ArrayList<>(); //length is always a rule. We do not allow blank password int minLength = Math.max(1, policy.getMinLength()); int maxLength = policy.getMaxLength()>0 ? policy.getMaxLength() : Integer.MAX_VALUE; rules.add(new LengthRule(minLength, maxLength)); if (policy.getRequireUpperCaseCharacter()>0) { rules.add(new CharacterRule(EnglishCharacterData.UpperCase, policy.getRequireUpperCaseCharacter())); } if (policy.getRequireLowerCaseCharacter()>0) { rules.add(new CharacterRule(EnglishCharacterData.LowerCase, policy.getRequireLowerCaseCharacter())); } if (policy.getRequireDigit()>0) { rules.add(new CharacterRule(EnglishCharacterData.Digit, policy.getRequireDigit())); } if (policy.getRequireSpecialCharacter() > 0) { rules.add(new CharacterRule(EnglishCharacterData.Special, policy.getRequireSpecialCharacter())); } return new PasswordValidator(messageResolver, rules); } }
/** * standardValidator * <p> * Apply Rules 1, 2 and 3. */ private void addStandardValidator() { int maxLength = getMaxLength(); int minLength = getMinLength(); int numberOfCharacteristics = getNumberOfCharacteristics(); int numberOfConsecutiveDigitsAllowed = getNumberOfConsecutiveDigitsAllowed(); PasswordValidator passwordValidator = validators.get(ValidatorTypes.StandardValidator); if (passwordValidator == null) { final List<Rule> rules = new ArrayList<>(4); rules.add(dictionarySubstringRule()); final LengthRule lengthRule = new LengthRule(); if (maxLength != 0) { lengthRule.setMaximumLength(maxLength); } if (minLength != 0) { lengthRule.setMinimumLength(minLength); } rules.add(lengthRule); if (numberOfCharacteristics != 0) { rules.add(characterRule(getCharacterRules())); } rules.add(repeatingDigitsRule(numberOfConsecutiveDigitsAllowed)); passwordValidator = new PasswordValidator(messageResolver, rules); validators.put(ValidatorTypes.StandardValidator, passwordValidator); } }
@Override public RuleResult validate(final PasswordData passwordData) { final RuleResult result = new RuleResult(); final int length = passwordData.getPassword().length(); if (length >= minimumLength && length <= maximumLength) { result.setValid(true); } else { result.setValid(false); if (length < minimumLength) { result.getDetails().add(new RuleResultDetail(ERROR_CODE_MIN, createRuleResultDetailParameters())); } else { result.getDetails().add(new RuleResultDetail(ERROR_CODE_MAX, createRuleResultDetailParameters())); } } result.setMetadata(createRuleResultMetadata(passwordData)); return result; }
@Override public RuleResult validate(PasswordData passwordData) { final RuleResult result = super.validate(passwordData); if ( !result.isValid()) { result.getDetails().clear(); result.getDetails().add(new RuleResultDetail(ERROR_CODE_GOODSTRENGTH, createRuleResultDetailParameters())); } return result; }
public org.passay.PasswordValidator getPasswordValidator(PasswordPolicy policy) { List<Rule> rules = new ArrayList<>(); //length is always a rule. We do not allow blank password int minLength = Math.max(1, policy.getMinLength()); int maxLength = policy.getMaxLength()>0 ? policy.getMaxLength() : Integer.MAX_VALUE; rules.add(new LengthRule(minLength, maxLength)); if (policy.getRequireUpperCaseCharacter()>0) { rules.add(new CharacterRule(EnglishCharacterData.UpperCase, policy.getRequireUpperCaseCharacter())); } if (policy.getRequireLowerCaseCharacter()>0) { rules.add(new CharacterRule(EnglishCharacterData.LowerCase, policy.getRequireLowerCaseCharacter())); } if (policy.getRequireDigit()>0) { rules.add(new CharacterRule(EnglishCharacterData.Digit, policy.getRequireDigit())); } if (policy.getRequireSpecialCharacter() > 0) { rules.add(new CharacterRule(EnglishCharacterData.Special, policy.getRequireSpecialCharacter())); } return new org.passay.PasswordValidator(rules); } }
final int min = Integer.parseInt(args[++i]); final int max = Integer.parseInt(args[++i]); final LengthRule rule = new LengthRule(min, max); rules.add(rule); } else if ("-c".equals(args[i])) {
public org.passay.PasswordValidator getPasswordValidator(PasswordPolicy policy) { List<Rule> rules = new ArrayList<>(); if (policy.getMinLength()>=0 && policy.getMaxLength()>0) { rules.add(new LengthRule(policy.getMinLength(), policy.getMaxLength())); } if (policy.getRequireUpperCaseCharacter()>0) { rules.add(new UppercaseCharacterRule(policy.getRequireUpperCaseCharacter())); } if (policy.getRequireLowerCaseCharacter()>0) { rules.add(new LowercaseCharacterRule(policy.getRequireLowerCaseCharacter())); } if (policy.getRequireDigit()>0) { rules.add(new DigitCharacterRule(policy.getRequireDigit())); } if (policy.getRequireSpecialCharacter() > 0) { rules.add(new SpecialCharacterRule(policy.getRequireSpecialCharacter())); } return new org.passay.PasswordValidator(rules); } }
new LengthRule(PASSWORD_MIN_LENGTH, PASSWORD_MAX_LENGTH),
new LengthRule(8, 255))); RuleResult result = validator.validate(new PasswordData(hashOrPassword)); if(!result.isValid()) {