Para cualquiera que venga aquí en busca de información sobre Tomcat 8.0.15 o posterior, probablemente debería usar SecretKeyCredentialHandler con PBKDF2, ya que es mucho más seguro (es decir, más difícil de descifrar) que un simple resumen de mensaje.
Por ejemplo, en su server.xml:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
Con esta configuración, use lo siguiente para generar el resultado hash de su contraseña:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
con el recuento de iteraciones y el tamaño de sal (en bytes) de su elección. Tenga en cuenta que la longitud de la clave debe ser la misma que la definida en server.xml debido al error 60446 . Sin embargo, debería solucionarse muy pronto río arriba.
¡ADVERTENCIA! Asegúrese de que su contraseña no se guarde en el historial de comandos de su shell. En bash esto se logra precediendo el comando con un espacio vacío.
El comando generará su contraseña en texto plano y una representación hexadecimal de las credenciales resultantes, que debe usar como atributo de contraseña en su tomcat-users.xml.
La documentación para el componente CredentialHandler se puede encontrar aquí . Los valores posibles para el atributo del algoritmo se pueden encontrar aquí .
"sha-1"
o"sha-256"
, si funcionará.