您好我已阅读Glassfish 3.1.2's JDBCRealm has a new Password Encryption Algorithm field. What is it for?并搜索了类似主题,但似乎尚未发布明确的答案。
简而言之,我有一个jdbc领域在glassfish 3中工作,当我升级到3.1.2时,相同的配置不起作用。根据前面的线程,我已经将JaasContext设置为jdbcDigestRealm(除了jdbcRealm也不起作用),将摘要算法设置为MD5(我在第3版中使用了MD5并且它有效)。对于密码加密算法,我试过'空白'和'十六进制',两者都不起作用。
有人可以告诉我应该如何配置。我的凭据表基于mysql,根据http://jugojava.blogspot.hk/2011/02/jdbc-security-realm-with-glassfish-and.html使用MD5哈希密码。
答案 0 :(得分:14)
我成功使其适用于以下设置。我对目前的(错误的)理解添加了一些评论。
希望它会有所帮助。
PS:如果有人链接到 REAL 文档(不是官方版本,此时完全没用),请点击这里链接。
答案 1 :(得分:1)
今天我花了一些时间玩这个(Java EE 7,Ubuntu 12.04上的Glassfish 4)。事实证明,不需要Realm页面上的大多数字段。以下字段是建立与数据库成功连接所需的唯一字段。
领域名称 - 任何名称,只要您在web.xml中使用相同的名称
JAAS上下文 - 任何名称
JNDI - 任何名称(我使用jdbc / DB名称)
用户表 - 包含所有用户的表
用户名列 - users表中包含用户名的列
密码 - 包含散列密码的列(SHA 256)
组表 - 包含组的表
组名列 - 组表中包含组名
我把其他一切都留空了。我的数据库密码列使用SHA 256进行了哈希密码。
我通过填写“密码加密”字段中的随机文本进行测试并保存。重新部署我的应用程序并重新启动Glassfish 4.仍然有效。这意味着该字段仍然存在,而不再被读取。
P.S - 第一个答案中提到的真实文档仍然很差。
答案 2 :(得分:0)
首先要做的事情。你的日志输出是多少? 你的“不工作问题”有什么症状? 是否出现了基本身份验证弹出窗口? 你有没有
No login module configured for jdbcDigestRealm
或其他错误消息?
如果登录尝试失败导致没有任何日志输出,则更改安全日志级别。
答案 3 :(得分:0)
我对jdbcRealm
问题有两个变体。第一个存在于使用GF 3.1.1创建的域中,该域在将GF服务器更新到3.1.2.2版本后继续工作。然后我在这台服务器上创建了一个新域。使用jdbcRealm
配置了新域。除了3.1.1配置屏幕下不存在的“密码加密算法”外,3.1.1配置的所有参数都相同。当我尝试使用我的Web应用程序登录时,我不断收到日志文件中的“jdbcrealm.invaliduserreason [#]”错误。
我能够解析并成功登录我的应用程序的唯一方法是将AES添加到“密码加密算法”字段中。我保存了更改并重新启动了服务器,我再一次能够通过jdbcRealm
连接成功验证用户身份。
答案 4 :(得分:0)
这里有一个更详细的指南 - > http://is.gd/Jx6Gnp