There is a better way, than just using the XML encode.
Create an Encryption Class to encrypt and decrypt your password.
And override Http11Nio2Protocol class, something similar to the below code.
public class Http11Nio2Protocol extends org.apache.coyote.http11.Http11Nio2Protocol {
@Override
public void setKeystorePass(String s) {
try {
super.setKeystorePass(new EncryptService().decrypt(s));
} catch (final Exception e){
super.setKeystorePass("");
}
}
}
Note: EncryptService is our own encryption class.
And configure the overridden class in the protocol attribute in server.xml like below.
<Connector port="8443" protocol="<com.mypackage.overridden_Http11Nio2Protocol_class>"
maxThreads="150" SSLEnabled="true" scheme="https" secure="true"
clientAuth="false" sslProtocol="TLS"
keystoreFile="conf/.ssl/keystore.jks"
keystorePass="<encrypted_password>"/>
Hope this helps.
与恶龙缠斗过久,自身亦成为恶龙;凝视深渊过久,深渊将回以凝视…