Pour ceux qui viennent ici à la recherche d'informations sur Tomcat 8.0.15 ou une version plus récente, vous devriez probablement utiliser SecretKeyCredentialHandler avec PBKDF2, car il est beaucoup plus sûr (c'est-à-dire plus difficile à casser) qu'un simple résumé de message.
Par exemple, dans votre server.xml:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
Avec cette configuration, utilisez ce qui suit pour générer la sortie hachée à partir de votre mot de passe:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
avec le nombre d'itérations et la taille du sel (en octets) de votre choix. Notez que la longueur de clé doit être la même que celle définie dans server.xml en raison du bogue 60446 . Il devrait cependant être corrigé très rapidement en amont.
AVERTISSEMENT! Veuillez vous assurer que votre mot de passe n'est pas enregistré dans l'historique des commandes de votre shell. En bash, ceci est réalisé en précédant la commande d'un espace vide.
La commande affichera votre mot de passe en texte brut et une représentation hexadécimale des informations d'identification résultantes, que vous devez utiliser comme attribut de mot de passe dans votre tomcat-users.xml.
La documentation du composant CredentialHandler est disponible ici . Les valeurs possibles pour l'attribut d'algorithme peuvent être trouvées ici .
"sha-1"
ou"sha-256"
, si cela fonctionne.