/** * 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); } }