Class PasswordConfigurableStrategy

java.lang.Object
de.powerstat.validation.values.strategies.PasswordConfigurableStrategy
All Implemented Interfaces:
IPasswordStrategy
Direct Known Subclasses:
PasswordDefaultStrategy

public class PasswordConfigurableStrategy extends Object implements IPasswordStrategy
Configurable password strategy. TODO rainbow tables TODO https://haveibeenpwned.com/ TODO struct parameter TODO chain strategy
  • Field Details

    • CACHE

      Cache for singletons.
    • minLength

      private final int minLength
      Minimum allowed username length.
    • maxLength

      private final int maxLength
      Maximum allowed username length.
    • regexp

      private final String regexp
      Regular expression for matching allowed characters.
    • minNumeric

      private final int minNumeric
      Minimum number of required numeric characters.
    • minLower

      private final int minLower
      Minimum number of lower case characters.
    • minUpper

      private final int minUpper
      Minimum number of upper case characters.
    • minSpecial

      private final int minSpecial
      Minimum number of special characters.
    • minUnique

      private final int minUnique
      Minimum number of unique characters.
    • maxRepeated

      private final int maxRepeated
      Maximum number of allowed repeated characters after each other.
  • Constructor Details

    • PasswordConfigurableStrategy

      protected PasswordConfigurableStrategy(int minLength, int maxLength, String regexp, int minNumeric, int minLower, int minUpper, int minSpecial, int minUnique, int maxRepeated)
      Constructor.
      Parameters:
      minLength - Minimum allowed username length, must be >= 1
      maxLength - Maximum allowed username length, must be >= minLength and <= INTEGER.MAX_VALUE
      regexp - Regular expression for matching characters. Must start with ^ and end with $. Example: ^[@./_0-9a-zA-Z-]+$
      minNumeric - Minimum required numeric characters
      minLower - Minimum required lower case characters
      minUpper - Minimum required upper case characters
      minSpecial - Minimum required special characters
      minUnique - Minimum required unique characters
      maxRepeated - Maximum number of allowed repeated characters after each other
      Throws:
      IllegalArgumentException - If arguments are not as required
      NullPointerException - If regexp is null TODO parameters via struct
  • Method Details

    • of

      public static IPasswordStrategy of(int minLength, int maxLength, String regexp, int minNumeric, int minLower, int minUpper, int minSpecial, int minUnique, int maxRepeated)
      Password validation strategy factory.
      Parameters:
      minLength - Minimum allowed username length, must be >= 1
      maxLength - Maximum allowed username length, must be >= minLength and <= INTEGER.MAX_VALUE
      regexp - Regular expression for matching characters. Must start with ^ and end with $. Example: ^[@./_0-9a-zA-Z-]+$
      minNumeric - Minimum required numeric characters
      minLower - Minimum required lower case characters
      minUpper - Minimum required upper case characters
      minSpecial - Minimum required special characters
      minUnique - Minimum required unique characters
      maxRepeated - Maximum number of allowed repeated characters after each other
      Returns:
      UsernameStrategy object
      Throws:
      IllegalArgumentException - If arguments
      NullPointerException - If regexp is null
    • validationStrategy

      public void validationStrategy(String password)
      Validation strategy.
      Specified by:
      validationStrategy in interface IPasswordStrategy
      Parameters:
      password - Password
      Throws:
      IllegalArgumentException - If the password does not match the configured parameters