Setting the Password Encryption

JasperReports Server receives the credentials from the user in the login request as plaintext. If your database stores encrypted user passwords, configure the secret key and encryption algorithm in the passwordValidator bean so JasperReports Server can encrypt the password from the user request and compare it to the password from the external database. The passwordValidator bean in the sample file allows you to configure a DES cipher and password.

If your database uses a different encryption algorithm, you can configure your own password encoder using the Spring implementations of the PasswordEncoder interface.

The passwordValidator bean in the sample file has the following properties:

     keyInPlainText property – Specifies whether secretKey is entered as plain text or as an encoded number string representation, like octal or hexadecimal.
     secretKey property – Enter the secret key the database uses to encrypt passwords. Enter it in the format (plaintext or encoded) specified in the keyInPlainText property.
     secretKeyAlgorithm property – Enter the symmetric key algorithm the database uses to encrypt passwords. The sample file supports only DES with cipher class extensions.
     cipherTransformation property – Enter the cipher transformations the database uses to encrypt passwords.

The following example shows how to configure the bean with a DESede cipher with CBC and PKCS5 padding:

<bean id="passwordValidator" class="com.jaspersoft.jasperserver.api.metadata.common.
      service.impl.PasswordValidator" lazy-init="false">
  <property name="keyInPlainText"><value>false</value></property>
  <property name="secretKey"><value>0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA
    0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA 0xAA</value></property>
  <property name="secretKeyAlgorithm"><value>DESede</value></property>
  <property name="cipherTransformation"><value>DESede/CBC/PKCS5Padding</value></property>
</bean>
Feedback
randomness