我正在开发一个 Java REST 项目,我目前正在使用带有基本身份验证的 JDBC 领域。我正在存储密码的 SHA-256 哈希,基本身份验证工作正常。为了切换到 Digest 身份验证,我将领域的 JAAS 上下文从 jdbcRealm 更改为 jdbcDigestRealm,并在 web.xml 中将 auth-method 设置为 DIGEST。
由于某种原因,如果我提供哈希本身,这会导致身份验证成功。当设置为摘要身份验证时,Glassfish 似乎不会自动散列提供的密码字符串,然后检查它,就像基本身份验证一样。
这是我的领域配置:
- JAAS 上下文:jdbcDigestRealm
- JNDI:jdbc/restshop
- 用户表:用户
- 用户名栏:用户名
- 密码栏:密码
- 组表:user_role
- 组名列:role_name
- 摘要算法:SHA-256
- 编码:十六进制
领域配置中还有密码加密算法字段,我不确定它的目的是什么。
任何帮助表示赞赏,如果您需要任何其他信息,我会提供。谢谢。