Module de.powerstat.validation
Class PasswordConfigurableStrategy
java.lang.Object
de.powerstat.validation.values.strategies.PasswordConfigurableStrategy
- All Implemented Interfaces:
IPasswordStrategy
- Direct Known Subclasses:
PasswordDefaultStrategy
Configurable password strategy.
TODO rainbow tables
TODO https://haveibeenpwned.com/
TODO struct parameter
TODO chain strategy
-
Field Summary
FieldsModifier and TypeFieldDescriptionprivate static final Map<NTuple9<Integer,
Integer, String, Integer, Integer, Integer, Integer, Integer, Integer>, PasswordConfigurableStrategy> Cache for singletons.private final int
Maximum allowed username length.private final int
Maximum number of allowed repeated characters after each other.private final int
Minimum allowed username length.private final int
Minimum number of lower case characters.private final int
Minimum number of required numeric characters.private final int
Minimum number of special characters.private final int
Minimum number of unique characters.private final int
Minimum number of upper case characters.private final String
Regular expression for matching allowed characters. -
Constructor Summary
ConstructorsModifierConstructorDescriptionprotected
PasswordConfigurableStrategy
(int minLength, int maxLength, String regexp, int minNumeric, int minLower, int minUpper, int minSpecial, int minUnique, int maxRepeated) Constructor. -
Method Summary
Modifier and TypeMethodDescriptionstatic IPasswordStrategy
of
(int minLength, int maxLength, String regexp, int minNumeric, int minLower, int minUpper, int minSpecial, int minUnique, int maxRepeated) Password validation strategy factory.void
validationStrategy
(String password) Validation strategy.
-
Field Details
-
CACHE
private static final Map<NTuple9<Integer,Integer, CACHEString, Integer, Integer, Integer, Integer, Integer, Integer>, PasswordConfigurableStrategy> Cache for singletons. -
minLength
private final int minLengthMinimum allowed username length. -
maxLength
private final int maxLengthMaximum allowed username length. -
regexp
Regular expression for matching allowed characters. -
minNumeric
private final int minNumericMinimum number of required numeric characters. -
minLower
private final int minLowerMinimum number of lower case characters. -
minUpper
private final int minUpperMinimum number of upper case characters. -
minSpecial
private final int minSpecialMinimum number of special characters. -
minUnique
private final int minUniqueMinimum number of unique characters. -
maxRepeated
private final int maxRepeatedMaximum 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 >= 1maxLength
- Maximum allowed username length, must be >= minLength and <= INTEGER.MAX_VALUEregexp
- Regular expression for matching characters. Must start with ^ and end with $. Example: ^[@./_0-9a-zA-Z-]+$minNumeric
- Minimum required numeric charactersminLower
- Minimum required lower case charactersminUpper
- Minimum required upper case charactersminSpecial
- Minimum required special charactersminUnique
- Minimum required unique charactersmaxRepeated
- Maximum number of allowed repeated characters after each other- Throws:
IllegalArgumentException
- If arguments are not as requiredNullPointerException
- 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 >= 1maxLength
- Maximum allowed username length, must be >= minLength and <= INTEGER.MAX_VALUEregexp
- Regular expression for matching characters. Must start with ^ and end with $. Example: ^[@./_0-9a-zA-Z-]+$minNumeric
- Minimum required numeric charactersminLower
- Minimum required lower case charactersminUpper
- Minimum required upper case charactersminSpecial
- Minimum required special charactersminUnique
- Minimum required unique charactersmaxRepeated
- Maximum number of allowed repeated characters after each other- Returns:
- UsernameStrategy object
- Throws:
IllegalArgumentException
- If argumentsNullPointerException
- If regexp is null
-
validationStrategy
Validation strategy.- Specified by:
validationStrategy
in interfaceIPasswordStrategy
- Parameters:
password
- Password- Throws:
IllegalArgumentException
- If the password does not match the configured parameters
-