public abstract class BasePasswordEncoder extends Object implements PasswordEncoder
Convenience base for all password encoders.
Constructor and Description |
---|
BasePasswordEncoder() |
Modifier and Type | Method and Description |
---|---|
protected String[] |
demergePasswordAndSalt(String mergedPasswordSalt)
Used by subclasses to extract the password and salt from a merged
String created using
mergePasswordAndSalt(String,Object,boolean) . |
protected String |
mergePasswordAndSalt(String password,
Object salt,
boolean strict)
Used by subclasses to generate a merged password and salt
String . |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
encodePassword, isPasswordValid
protected String[] demergePasswordAndSalt(String mergedPasswordSalt)
String
created using
mergePasswordAndSalt(String,Object,boolean)
.
The first element in the returned array is the password. The second element is the
salt. The salt array element will always be present, even if no salt was found in
the mergedPasswordSalt
argument.
mergedPasswordSalt
- as generated by mergePasswordAndSalt
IllegalArgumentException
- if mergedPasswordSalt is null or empty.protected String mergePasswordAndSalt(String password, Object salt, boolean strict)
String
.
The generated password will be in the form of password{salt}
.
A null
can be passed to either method, and will be handled correctly.
If the salt
is null
or empty, the resulting generated
password will simply be the passed password
. The toString
method of the salt
will be used to represent the salt.
password
- the password to be used (can be null
)salt
- the salt to be used (can be null
)strict
- ensures salt doesn't contain the delimitersString
IllegalArgumentException
- if the salt contains '{' or '}' characters.