哈希tomcat密码

Ral*_*lph 2 authentication hash tomcat

我试图在tomcat-users.xml中使用散列测试用例.(我计划实现其中一个Realm类的子类,以便通过审计,日志记录等进行真正的身份验证.)我运行了命令

$TOMCAT_HOME/bin/digest.sh -a sha secret
Run Code Online (Sandbox Code Playgroud)

结果'秘密:e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4'.我把它粘贴到了

<user password="e5e9fa1ba31ecd1ae84f75caaa474f3a663f05f4" roles="test" username="tester"/>
Run Code Online (Sandbox Code Playgroud)

线.我在web.xml中添加了相应的魔术字,以便对servlet使用DIGEST身份验证(role = test),但是当我尝试登录时,我收到401错误.

我用wireshark"观察"了这些交易,似乎浏览器正在发送所有正确的响应.

我这样做了吗?在我看来,摘要认证将发送回MD5("用户名:realm:密码"),因此tomcat无法将存储在tomcat-users.xml文件中的值与浏览器发送的值进行比较,因为它需要从"tomcat-users.xml"或"username:realm:password"中"取消"密码值.

我应该存储"用户名:域名:密码"的哈希值吗?

Ral*_*lph 7

男孩,这是一个DUE(愚蠢的用户错误)!

我应该更仔细地阅读tomcat文档:

如果使用带有DIGEST身份验证的消化密码,则用于生成摘要的明文不同.在上面的示例中,{cleartext-password}必须替换为{username}:{realm}:{cleartext-password}.例如,在开发环境中,这可能采用testUser:localhost:8080:testPassword的形式.

完全是我自己问题的最后一部分:-).