Interface PasswordEncoderService

All Known Implementing Classes:
DefaulPasswordEncoderService, LDAPPasswordEncoderService

public interface PasswordEncoderService
The PasswordEncoderService encodes and decodes passwords for a given user. Based on the given passwordEncoding the corresponding PasswordEncoder is used for the encoding/decoding. Use getSupportedEncodings() to have a look which PasswordEncoders are supported.
Spring Bean ID:
passwordEncoderService
  • Method Summary

    Modifier and Type
    Method
    Description
    Tries to decodes from the given user the encoded password based on the encoding set to the user.
    encode(UserModel user, String plainTextPassword, String passwordEncoding)
    Encodes the given plainTextPassword with the corresponding PasswordEncoder (based on the passwordEncoding) and returns it.
     
    boolean
    Checks if the given password encoding is supported.
    boolean
    isValid(UserModel user, String plainPassword)
    Checks if the encoded password (stored in the user) matches the given plain text password.
  • Method Details

    • encode

      String encode(UserModel user, String plainTextPassword, String passwordEncoding) throws PasswordEncoderNotFoundException
      Encodes the given plainTextPassword with the corresponding PasswordEncoder (based on the passwordEncoding) and returns it. The user can be used as 'salt' in the implementation of the PasswordEncoders
      Parameters:
      user - can be used as 'salt'. See MD5PasswordEncoder
      plainTextPassword - the plain password
      passwordEncoding - 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

      Tries to decodes from the given user the encoded password based on the encoding set to the user.

      see UserModel.getEncodedPassword() and UserModel.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 system
      CannotDecodePasswordException - if the encoded password cannot be decoded, see MD5PasswordEncoder
    • isSupportedEncoding

      boolean isSupportedEncoding(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:
    • getSupportedEncodings

      Collection<String> getSupportedEncodings()
      Returns:
      a collection with the supported encodings of this system.
    • isValid

      boolean isValid(UserModel user, 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) encoding
      plainPassword - the plain text password
      Returns:
      true if the encoded passwords matches, false otherwise