Interface PasswordHash
-
- All Known Subinterfaces:
Pbkdf2PasswordHash
public interface PasswordHashPasswordHashis an interface for objects that can generate and verify password hashes.Implementations of
PasswordHashare configured for the built-in DatabaseIdentityStoreby configuring the type on theDatabaseIdentityStoreDefinitionannotation. Parameters for thePasswordHashcan also be configured on the annotation, and will be passed to theinitialize(Map)method when theIdentityStoreis initialized.
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description Stringgenerate(char[] password)Generate an encoded password hash value for storage in a user's account.default voidinitialize(Map<String,String> parameters)Initialize the instance with the parameters it should use to generate and verify password hashes.booleanverify(char[] password, String hashedPassword)Verify a password against the hashed password value retrieved from a user's account.
-
-
-
Method Detail
-
initialize
default void initialize(Map<String,String> parameters)
Initialize the instance with the parameters it should use to generate and verify password hashes. The parameters are the name/value pairs specified with theDatabaseIdentityStoreDefinition.hashAlgorithmParameters()attribute.An implementation is not required to support parameters, and may ignore parameters passed to it. It is also possible that an implementation will use the specified parameters when generating a new password hash, but ignore them in favor of parameters stored with an existing password hash when verifying.
If no parameters were supplied, the argument is an empty
Map.- Parameters:
parameters- AMapof the provided parameters, empty if no parameters were supplied.
-
generate
String generate(char[] password)
Generate an encoded password hash value for storage in a user's account.This method should not be used to generate a password hash for verification purposes; use
verify(char[], String)for that purpose. Use this method only to generate password hashes for new or changed passwords.The returned hash value should be fully encoded, such that it can be directly stored, as is, with no additional formatting or encoding applied.
- Parameters:
password- The password to generate a hash for.- Returns:
- The generated password hash value.
-
verify
boolean verify(char[] password, String hashedPassword)Verify a password against the hashed password value retrieved from a user's account.The
hashedPasswordparameter should be provided exactly as retrieved from the database, with no decoding or formatting applied. Thepasswordparameter should be hashed and compared to the hashed password.- Parameters:
password- The password to verify.hashedPassword- The hashed password to compare against.- Returns:
- True if the password matched the hashed password, false otherwise.
-
-