public class CmsDefaultPasswordHandler extends java.lang.Object implements I_CmsPasswordHandler, I_CmsPasswordSecurityEvaluator, I_CmsPasswordGenerator
I_CmsPasswordSecurityEvaluator.SecurityLevel
Modifier and Type | Field and Description |
---|---|
static java.lang.String |
PARAM_SCRYPT_FALLBACK
Parameter for SCrypt fall back.
|
static java.lang.String |
PARAM_SCRYPT_SETTINGS
Parameter for SCrypt settings.
|
static int |
PASSWORD_MIN_LENGTH
The minimum length of a password.
|
static int |
PASSWORD_SECURE_LENGTH
The password length that is considered to be secure.
|
CONVERT_DIGEST_ENCODING, DIGEST_TYPE_MD5, DIGEST_TYPE_PLAIN, DIGEST_TYPE_SCRYPT, DIGEST_TYPE_SHA, DIGEST_TYPE_SSHA
ADD_PARAMETER_METHOD, INIT_CONFIGURATION_METHOD
Constructor and Description |
---|
CmsDefaultPasswordHandler()
The constructor does not perform any operation.
|
Modifier and Type | Method and Description |
---|---|
void |
addConfigurationParameter(java.lang.String paramName,
java.lang.String paramValue)
Adds a configuration parameter to this parameter configurable class instance.
|
boolean |
checkPassword(java.lang.String plainPassword,
java.lang.String digestedPassword,
boolean useFallback)
This method checks if the given plain text password is equal to the given
digested password.
|
java.lang.String |
digest(java.lang.String password)
Creates an OpenCms password digest according to the default setting for method/encodings.
|
java.lang.String |
digest(java.lang.String password,
java.lang.String digestType,
java.lang.String inputEncoding)
Creates an OpenCms password digest.
|
I_CmsPasswordSecurityEvaluator.SecurityLevel |
evaluatePasswordSecurity(java.lang.String password)
Evaluates the given password security.
|
CmsParameterConfiguration |
getConfiguration()
Returns the parameters of this configurable class instance,
or
null if the class does not need any parameters. |
java.lang.String |
getDigestType()
Returns the digestType.
|
java.lang.String |
getInputEncoding()
Returns the input encoding.
|
java.lang.String |
getPasswordSecurityHint(java.util.Locale locale)
Returns a hint describing how to set a secure password.
|
java.lang.String |
getRandomPassword()
Returns random password.
|
void |
initConfiguration()
Initializes a configuration after all parameters have been added.
|
void |
setDigestType(java.lang.String digestType)
Sets the digestType.
|
void |
setInputEncoding(java.lang.String inputEncoding)
Sets the input encoding.
|
void |
validatePassword(java.lang.String password)
This method checks if a new password follows the rules for
new passwords, which are defined by a Class configured in
the opencms.properties file.
|
public static java.lang.String PARAM_SCRYPT_FALLBACK
public static java.lang.String PARAM_SCRYPT_SETTINGS
public static final int PASSWORD_MIN_LENGTH
public static final int PASSWORD_SECURE_LENGTH
public CmsDefaultPasswordHandler()
public void addConfigurationParameter(java.lang.String paramName, java.lang.String paramValue)
I_CmsConfigurationParameterHandler
addConfigurationParameter
in interface I_CmsConfigurationParameterHandler
paramName
- the name of the parameterparamValue
- the value for the parameterI_CmsConfigurationParameterHandler.addConfigurationParameter(java.lang.String, java.lang.String)
public boolean checkPassword(java.lang.String plainPassword, java.lang.String digestedPassword, boolean useFallback)
I_CmsPasswordHandler
Use this to check salted passwords. If the password is salted, it needs to be checked with the salt (and possible other parameters) stored in the digested password. Just digesting the password again and comparing the result to a previous digest won't work because the salt will usually be different.
checkPassword
in interface I_CmsPasswordHandler
plainPassword
- the plain text password to checkdigestedPassword
- the digested password to compare with the plain passworduseFallback
- if true
, then use a fall back hashing algorithm in case first validation failsfalse
if the validation of the password failedI_CmsPasswordHandler.checkPassword(String, String, boolean)
public java.lang.String digest(java.lang.String password) throws CmsPasswordEncryptionException
I_CmsPasswordHandler
digest
in interface I_CmsPasswordHandler
password
- the password to encryptCmsPasswordEncryptionException
- if something goes wrongI_CmsPasswordHandler.digest(java.lang.String)
public java.lang.String digest(java.lang.String password, java.lang.String digestType, java.lang.String inputEncoding) throws CmsPasswordEncryptionException
I_CmsPasswordHandler
digest
in interface I_CmsPasswordHandler
password
- the password to encryptdigestType
- the algorithm used for encryption (i.e. MD5, SHA ...)inputEncoding
- the encoding used when converting the password to bytes (i.e. UTF-8)CmsPasswordEncryptionException
- if something goes wrongI_CmsPasswordHandler.digest(java.lang.String, java.lang.String, java.lang.String)
public I_CmsPasswordSecurityEvaluator.SecurityLevel evaluatePasswordSecurity(java.lang.String password)
I_CmsPasswordSecurityEvaluator
evaluatePasswordSecurity
in interface I_CmsPasswordSecurityEvaluator
password
- the passwordI_CmsPasswordSecurityEvaluator.evaluatePasswordSecurity(java.lang.String)
public CmsParameterConfiguration getConfiguration()
I_CmsConfigurationParameterHandler
null
if the class does not need any parameters.getConfiguration
in interface I_CmsConfigurationParameterHandler
null
if the class does not need any parametersI_CmsConfigurationParameterHandler.getConfiguration()
public java.lang.String getDigestType()
getDigestType
in interface I_CmsPasswordHandler
public java.lang.String getInputEncoding()
getInputEncoding
in interface I_CmsPasswordHandler
public java.lang.String getPasswordSecurityHint(java.util.Locale locale)
I_CmsPasswordSecurityEvaluator
getPasswordSecurityHint
in interface I_CmsPasswordSecurityEvaluator
locale
- the localeI_CmsPasswordSecurityEvaluator.getPasswordSecurityHint(java.util.Locale)
public java.lang.String getRandomPassword()
I_CmsPasswordGenerator
getRandomPassword
in interface I_CmsPasswordGenerator
I_CmsPasswordGenerator.getRandomPassword()
public void initConfiguration()
I_CmsConfigurationParameterHandler
initConfiguration
in interface I_CmsConfigurationParameterHandler
I_CmsConfigurationParameterHandler.initConfiguration()
public void setDigestType(java.lang.String digestType)
setDigestType
in interface I_CmsPasswordHandler
digestType
- the digestType to setpublic void setInputEncoding(java.lang.String inputEncoding)
setInputEncoding
in interface I_CmsPasswordHandler
inputEncoding
- the input encoding to setpublic void validatePassword(java.lang.String password) throws CmsSecurityException
I_CmsPasswordHandler
If this method throws no exception the password is valid.
validatePassword
in interface I_CmsPasswordHandler
password
- the password to checkCmsSecurityException
- if validation of the password failedI_CmsPasswordHandler.validatePassword(java.lang.String)