Passay - HistoryRule

HistoryRulepermite verificar se a senha fornecida não foi usada no passado. Considere o seguinte exemplo.

Exemplo

import org.passay.HistoryRule;
import org.passay.PasswordData;
import org.passay.PasswordValidator;
import org.passay.RuleResult;
import org.passay.SourceRule;

public class PassayExample {
   public static void main(String[] args) {
      SourceRule sourceRule = new SourceRule();
      HistoryRule historyRule = new HistoryRule();
      PasswordValidator validator = new PasswordValidator(sourceRule, historyRule);
      PasswordData password = new PasswordData("[email protected]");
      password.setPasswordReferences(
         new PasswordData.SourceReference("source", "password"), 
         new PasswordData.HistoricalReference("[email protected]")
      );
      RuleResult result = validator.validate(password);

      if(result.isValid()){
         System.out.println("Password validated.");
      }else{
         System.out.println("Invalid Password: " + validator.getMessages(result));            
      }
   }
}

Resultado

Invalid Password: [Password matches one of 1 previous passwords.]