Для тих, хто приходить сюди, шукаючи інформацію про Tomcat 8.0.15 або новішої версії, вам, мабуть, слід скористатись SecretKeyCredentialHandler разом із PBKDF2, оскільки це набагато безпечніше (тобто важче зламати), ніж простий дайджест повідомлень.
Наприклад, у вашому сервері.xml:
<Realm className="org.apache.catalina.realm.UserDatabaseRealm"
resourceName="UserDatabase">
<CredentialHandler className="org.apache.catalina.realm.SecretKeyCredentialHandler"
algorithm="PBKDF2WithHmacSHA512"
keyLength="256"
/>
</Realm>
У цій конфігурації використовуйте наступне, щоб генерувати хешований вихід із вашого пароля:
$CATALINA_HOME/bin/digest.sh -a "PBKDF2WithHmacSHA512" -i 100000 -s 16 -k 256 -h "org.apache.catalina.realm.SecretKeyCredentialHandler" "YOUR_PASSWORD"
з вибором ітерації та розміром солі (у байтах) на ваш вибір. Зауважте, що довжина ключа повинна бути такою ж, як визначено в server.xml через помилку 60446 . Це має бути зафіксовано досить скоро вгору за течією.
УВАГА! Переконайтеся, що ваш пароль не зберігається в історії команд вашої оболонки. У bash це досягається попереднім переходом команди з порожнім пробілом.
Команда видасть ваш пароль у простому тексті та шістнадцяткове представлення отриманих облікових даних, які слід використовувати як атрибут пароля у своєму tomcat-users.xml.
Документацію для компонента CredentialHandler можна знайти тут . Можливі значення для атрибута алгоритму можна знайти тут .
"sha-1"
або"sha-256"
, якщо це спрацює.