【问题标题】:Tomcat 6 - How to Configure Digest SHA-256Tomcat 6 - 如何配置摘要 SHA-256
【发布时间】:2012-12-31 07:30:35
【问题描述】:

我正在使用 Tomcat 6,目前在 MySql 数据库中将表单身份验证用作明文密码。我已经在密码中添加了加密以散列 SHA-256 中的密码,它似乎可以工作,但是当我尝试使用 server.xml 中的 digest="SHA-256" 和 digestEncoding="base64" 通过 Tomcat 6 进行身份验证时,它不会进行身份验证。如果我从数据库中复制密码并将其输入密码字段,我可以验证我的用户。

如何让 Tomcat 允许我使用普通密码但存储在 MySql 中的哈希密码对用户进行身份验证?

这是我添加到我的应用程序的哈希代码:

    MessageDigest messageDigest = MessageDigest.getInstance("SHA-256");
    byte bin[] = messageDigest.digest(password.getBytes("UTF-8"));
    return Base64.encodeBase64String(bin);

【问题讨论】:

  • 我得到一个明显的印象,即 DIGEST auth-method 仅适用于此,表单身份验证不起作用。如何使用表单身份验证进行这项工作?

标签: java mysql authentication tomcat6


【解决方案1】:

这个问题的答案实际上非常简单——创建一个自定义的 Tomcat 领域。领域是执行实际身份验证的部分,如果您想针对您的数据库进行测试(尤其是加密或散列),领域身份验证方法是您必须覆盖的。

http://www.christianschenk.org/blog/setup-your-own-tomcat-security-realm/

【讨论】:

    猜你喜欢
    • 2011-03-27
    • 2011-10-15
    • 1970-01-01
    • 2015-06-18
    • 2011-03-02
    • 2013-09-16
    • 2015-03-24
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多