Для тех, кто приходит сюда в поисках информации о Tomcat 8.0.15 или новее, вам, вероятно, следует вместо этого использовать SecretKeyCredentialHandler с PBKDF2, поскольку он гораздо более безопасен (т. Е. Труднее взломать), чем простой дайджест сообщений.
Например, в вашем server.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"
, если это будет работать.