cuba-pswdplus is a CUBA Platform component that provides "out of the box" password history validation to an existing application. It allows the app administrator to activate and configure the validation.
A coming version will add support for password expiration and thus, it will allow a CUBA application to be deployed in corporate environments with strict password requirements.
cuba-pswdplus
is available in the CUBA marketplace- The component was tested only in platform version 6.10.x
To install the component, you have to add the repository and the component in CUBA Studio or in a build.gradle
file. The complete add-ons installation guide is explained in CUBA Platform documentation
Add a custom application component to your project:
- Artifact group:
ar.com.osmosys.pswdplus
- Artifact name:
pswdplus-global
- Version: add-on version
Once you've installed the component and run your app for the first time, open the Application Properties screen in the Administrator menu. You will see a new entry named pswdplus:
There are two properties to configure:
-
usePswdHistory: boolean value,
true
if you want to enable password history. Setting it tofalse
will not delete already stored passwords. -
pswdHistoryLength: number of used passwords that will be stored in the database for a each user. For instance, if
pswdHistoryLength=10
the component will validate a new password against the last 10 used passwords for that user. The password log follows a FIFO rule, once a new password is stored in the log, the oldest is hard deleted.
The validation is performed when the user changes his password himself or it is changed by the admin. If the entered new password is already in the password history log, then an alert is shown on the screen.
At this version, only English and Spanish messages are supported.
At this version, only MySQL database is supported out of the box. Scripts for any other database engine should be created by the user.
The last n passwords are stored in a table named PSWDPLUS_PASSWORD_HISTORY
. As said before, there is no need to maintain the table, since it follows a FIFO rule. Once a new record for a user is created, the component deletes the oldest one.