diff --git a/docs/en-US/password-storage-engine.xml b/docs/en-US/password-storage-engine.xml new file mode 100644 index 00000000000..05661055e9b --- /dev/null +++ b/docs/en-US/password-storage-engine.xml @@ -0,0 +1,68 @@ + + +%BOOK_ENTITIES; +]> + + +
+ Changing the Default Password Encryption + Passwords are encoded when creating or updating users. &PRODUCT; allows you to determine the + default encoding and authentication mechanism for admin and user logins. A new configurable list + called UserPasswordEncoders to allow you to separately configure the order of + preference for encoding and authentication schemes. + Additionally, plain text user authenticator has been changed to use SHA256SALT as the + default encoding algorithm because it is more secure compared to MD5 hashing. It does a simple + string comparison between retrieved and supplied login passwords instead of comparing the + retrieved md5 hash of the stored password against the supplied md5 hash of the password because + clients no longer hash the password. The following method determines what encoding scheme is + used to encode the password supplied during user creation or modification. + When a new user is created, the user password is encoded by using the first valid encoder + loaded as per the sequence specified in the UserPasswordEncoders property in the + ComponentContext.xml or nonossComponentContext.xml + files. The order of authentication schemes is determined by the UserAuthenticators + property in the same files. When a new authenticator or encoder is added, you can add them to + this list. While doing so, ensure that the new authenticator or encoder is specified as a bean + in both these files. The administrator can change the ordering of both these properties as + preferred to change the order of schemes. Modify the following list properties available in + client/tomcatconf/nonossComponentContext.xml.in or + client/tomcatconf/componentContext.xml.in as applicable, to the desired + order: + <property name="UserAuthenticators"> + <list> + <ref bean="SHA256SaltedUserAuthenticator"/> + <ref bean="MD5UserAuthenticator"/> + <ref bean="LDAPUserAuthenticator"/> + <ref bean="PlainTextUserAuthenticator"/> + </list> + </property> + <property name="UserPasswordEncoders"> + <list> + <ref bean="SHA256SaltedUserAuthenticator"/> + <ref bean="MD5UserAuthenticator"/> + <ref bean="LDAPUserAuthenticator"/> + <ref bean="PlainTextUserAuthenticator"/> + </list> + In the above default ordering, SHA256Salt is used first for + UserPasswordEncoders. If the module is found and encoding returns a valid value, + the encoded password is stored in the user table's password column. If it fails for any reason, + the MD5UserAuthenticator will be tried next, and the order continues. For + UserAuthenticators, SHA256Salt authentication is tried first. If it succeeds, the + user is logged into the Management server. If it fails, MD5 is tried next, and attempts + continues until any of them succeeds and the user logs in . If none of them works, the user is + returned an invalid credential message. +