Per chiunque venga qui alla ricerca di informazioni su Tomcat 8.0.15 o versioni successive, è consigliabile utilizzare SecretKeyCredentialHandler con PBKDF2, poiché è molto più sicuro (ovvero più difficile da decifrare) di un semplice digest di messaggi.
Ad esempio, nel tuo server.xml:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
Con questa configurazione, utilizzare quanto segue per generare l'output con hash dalla password:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
con il conteggio delle iterazioni e la dimensione del sale (in byte) di tua scelta. Si noti che la lunghezza della chiave deve essere la stessa definita in server.xml a causa del bug 60446 . Dovrebbe essere riparato abbastanza presto a monte però.
AVVERTIMENTO! Assicurarsi che la password non venga salvata nella cronologia dei comandi della shell. In bash questo si ottiene precedendo il comando con uno spazio vuoto.
Il comando genererà la tua password in testo semplice e una rappresentazione esadecimale delle credenziali risultanti, che dovresti usare come attributo della password in tomcat-users.xml.
La documentazione per il componente CredentialHandler è disponibile qui . I possibili valori per l'attributo dell'algoritmo sono disponibili qui .
"sha-1"
o"sha-256"
, se funzionerà.