class PasswordValidator implements Validator<String, InvalidPasswordException> {

    @Override
    public void validate(final String password) throws InvalidPasswordException {

        final String passwordLowerCase = password.toLowerCase();
        
        if(passwordPolicy.getBlacklist().stream().anyMatch(passwordLowerCase::contains)) {
            throw new InvalidPasswordException(singletonList(InvalidPasswordException.ERROR_KEY));
        }

    }

    public  PasswordValidator(final PasswordPolicyProperties passwordPolicy);

}