Each password parameter should be encrypted in the application.properties file.
Follow these steps to encrypt a password:
Decide on which password to encrypt.
Run encryptPassword.sh
under the /bin
directory with the following command:
encryptPassword.sh --encryption-password <JASYPT_ENCRYPTOR_PASSWORD>
<passphrase>
The JASYPT_ENCRYPTOR_PASSWORD
property is the key to
encrypt the passphrase. It can be any string combination.
Place the value received from running the shell script as the password value. This
value should be wrapped in ‘ENC()’
string to mark the fact that this
password is encrypted.
In a running testing or production environment, the
JASYPT_ENCRYPTOR_PASSWORD
should be set as an
environment variable.
In the following example, the required password for the
spring.data.redis.password
property is
‘pass1’
, and the JASYPT_ENCRYPTOR_PASSWORD
property was decided to be ‘pass2’
.
Run the shell script as follows:
encryptPassword.sh --encryption-password pass2 pass1
The output received from the shell script could be AAAABBBB44444FFFBB
.
This value should be set as property in the application.properties as follows:
spring.data.redis.password=ENC(AAAABBBB44444FFFBB)
This process must be done for each password used in the application.properties file.
The same JASYPT_ENCRYPTOR_PASSWORD
property must be used
for all encrypted properties.
When subsequently accessing the server that runs the application (for production or
testing), an environment variable must be set for the key
JASYPT_ENCRYPTOR_PASSWORD
with the value
pass2
.
An alternative option to supply the configuration files
(application.properties and license file) is
by adding a resource directory to the
NaturalAvailiablityServer
class path in the servlet
container:
A module needs to be defined in order to add filles to the class path:
Create a directory that contains the resource files.
Run the following command to add the module. The module name should stay as defined in the command:
/opt/jboss/wildfly/bin/jbos–cli.sh -c –command=”module add
–name=natural-availability-server-configuration --resource-delimiter=,
--resources=<path to folder created>/application.properties, <path to folder
created>/nha<version-number>.xml"
Configure the location of the application.properties file:
In the application.properties, set the
licensePath
property pointing to the location of the
license file.
Create the following file under Tomcat® installation:
<tomcat installation>/conf/Catalina/myHost/NaturalAvailabilityServer.xml
… where myHost is the host name.
In this file NaturalAvailabilityServer.xml, add the following element:
<Context> <Environment name=" spring_config_location"
value="<location of application.properties>/application.properties"
type="java.lang.String"/> </Context>