Хеширование паролей кота - PullRequest
2 голосов
/ 01 марта 2010

Я пытаюсь использовать хеширование для теста в tomcat-users.xml. (Я планирую реализовать подкласс одного из классов Realm для выполнения реальной аутентификации с аудитом, ведением журнала и т. Д.) Я выполнил команду

$TOMCAT_HOME/bin/digest.sh -a sha secret

и получил результат 'secret: e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4'. Я вставил это в

<user password="e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4" roles="test" username="tester"/>

линия. Я добавил соответствующие магические слова в свой файл web.xml, чтобы использовать DIGEST-аутентификацию для сервлета (role = test), но когда я пытаюсь войти в систему, я получаю ошибку 401.

Я "наблюдал" за транзакциями с Wireshark, и, похоже, браузер отправляет все правильные ответы.

Я правильно делаю? Мне кажется, что дайджест-аутентификация отправит обратно MD5 («username: realm: password»), поэтому tomcat не сможет сравнить значение, хранящееся в файле tomcat-users.xml, со значением, отправленным браузером, поскольку для этого потребуется либо «отключить» значение пароля из tomcat-users.xml, либо «username: realm: password».

Должен ли я вместо этого хранить хеш "username: realm: password"?

1 Ответ

7 голосов
/ 01 марта 2010

Мальчик, это было DUE (глупая ошибка пользователя)!

Я должен был прочитать документы кота более внимательно:

При использовании переваренных паролей с аутентификацией DIGEST открытый текст, используемый для генерации дайджеста, отличается. В приведенных выше примерах {cleartext-password} должен быть заменен на {username}: {realm}: {cleartext-password}. Например, в среде разработки это может принимать форму testUser: localhost: 8080: testPassword.

Именно последняя часть моего собственного вопроса: -).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...