jdbcDigestAuthentication仅在提供哈希时有效



我开始了一个设置基本身份验证的项目。现在我想切换到摘要身份验证。问题是,只有当我提供实际密码的哈希值而不是实际密码时,身份验证才会被验证。

我做了以下操作从BASIC切换到DIGEST:

  1. 更改了my web.xml中的auth-method to DIGEST

  2. 将JDBC Realm的JAAS上下文更改为"jdbcDigestRealm"

  3. 在我的数据库中,我曾经有"密码"作为密码,我更改为MD5的结果(webuser:postgres:webuser)(其中webuser是登录,webuser是密码,而postgres是领域),换句话说,我将我的表中的密码设置为c3c2681ed07a5a2a5cb772061a8385e8。

我遇到的问题是,当我尝试访问资源时,浏览器显示登录弹出窗口,但使用"webuser"作为密码不起作用。但是,使用"c3c2681ed07a5a2a5cb772061a8385e8"作为密码可以工作。看起来我还在BASIC认证模式。

有线索吗?

DIGEST auth-method与HTTP DIGEST Authentication相同。它只是对浏览器和服务器之间的通信进行加密。服务器仍然有明文密码。

从http://java.boot.by/wcd-guide/ch05s03.html

:

基本认证和摘要认证的区别在于浏览器与服务器之间的网络连接,密码为加密,即使在非ssl连接上也是如此。在服务器端,密码可以存储在明文或加密文本,这是真的吗登录方法的选择与应用程序的选择无关部署人员。

应将JDBC Realmdigest-algorithm属性设置为MD5。之后,JDBC Realm将散列密码。

也许您需要将领域视图中的摘要算法从glassfish控制台更改为MD5。GlassFish 3.0的默认值。*仍然是MD5,但来自GlassFish 3.1。*已更改为SHA-256。这可能是解决方案。

Adem

相关内容

  • 没有找到相关文章

最新更新