Interface PasswordEncoderService
-
- All Known Implementing Classes:
DefaulPasswordEncoderService
,LDAPPasswordEncoderService
public interface PasswordEncoderService
The PasswordEncoderService encodes and decodes passwords for a given user. Based on the givenpasswordEncoding
the correspondingPasswordEncoder
is used for the encoding/decoding. UsegetSupportedEncodings()
to have a look which PasswordEncoders are supported.- Spring Bean ID:
- passwordEncoderService
-
-
Method Summary
All Methods Instance Methods Abstract Methods Modifier and Type Method Description java.lang.String
decode(UserModel user)
Tries to decodes from the givenuser
the encoded password based on the encoding set to the user.java.lang.String
encode(UserModel user, java.lang.String plainTextPassword, java.lang.String passwordEncoding)
Encodes the givenplainTextPassword
with the corresponding PasswordEncoder (based on thepasswordEncoding
) and returns it.java.util.Collection<java.lang.String>
getSupportedEncodings()
boolean
isSupportedEncoding(java.lang.String encoding)
Checks if the given password encoding is supported.boolean
isValid(UserModel user, java.lang.String plainPassword)
Checks if the encoded password (stored in the user) matches the given plain text password.
-
-
-
Method Detail
-
encode
java.lang.String encode(UserModel user, java.lang.String plainTextPassword, java.lang.String passwordEncoding) throws PasswordEncoderNotFoundException
Encodes the givenplainTextPassword
with the corresponding PasswordEncoder (based on thepasswordEncoding
) and returns it. Theuser
can be used as 'salt' in the implementation of thePasswordEncoder
s- Parameters:
user
- can be used as 'salt'. SeeMD5PasswordEncoder
plainTextPassword
- the plain passwordpasswordEncoding
- based on this encoding the correct PasswordEncoder is used- Returns:
- the encoded password
- Throws:
PasswordEncoderNotFoundException
- if for the given passwordEncoding no PasswordEncoder is known
-
decode
java.lang.String decode(UserModel user) throws PasswordEncoderNotFoundException, CannotDecodePasswordException
Tries to decodes from the givenuser
the encoded password based on the encoding set to the user.see
UserModel.getEncodedPassword()
andUserModel.getPasswordEncoding()
- Parameters:
user
- contains the encoded password and the encoding- Returns:
- the password in plain text if possible
- Throws:
PasswordEncoderNotFoundException
- if for the given passwordEncoding no PasswordEncoder is known in the systemCannotDecodePasswordException
- if the encoded password cannot be decoded, see MD5PasswordEncoder
-
isSupportedEncoding
boolean isSupportedEncoding(java.lang.String encoding)
Checks if the given password encoding is supported.- Parameters:
encoding
- the password encoding- Returns:
true
if the given encoding is supported,false
otherwise.- See Also:
PasswordEncoderConstants.DEFAULT_ENCODING
-
getSupportedEncodings
java.util.Collection<java.lang.String> getSupportedEncodings()
- Returns:
- a collection with the supported encodings of this system.
-
isValid
boolean isValid(UserModel user, java.lang.String plainPassword)
Checks if the encoded password (stored in the user) matches the given plain text password. For this the plain password will be encoded and compared with the user's encoded password.- Parameters:
user
- the user contains the encoded password and the (password) encodingplainPassword
- the plain text password- Returns:
true
if the encoded passwords matches,false
otherwise
-
-