1

我尝试如下设置 JDBC Authentication Realm

1-我配置了一个JDBC连接池,命名为 mysql_acme_rootPool

2-通过单击 PING 测试上述池并成功。

3-然后我转到配置>>服务器配置>>安全>>领域并创建了一个名为 myRealm 的新领域

下面是一些配置截图

在此处输入图像描述

向下滚动后

在此处输入图像描述

现在的问题是,即使我输入了正确的密码,我也会再次弹出登录屏幕,就好像我的密码无效一样。任何方式我都可以看到正在生成什么查询?如何缩小问题范围?它在我的 netbeans 配置中吗?或 web.xml ?? 在哪里 ??

这是我的 web.xml 部分

 <security-constraint>
        <display-name>SecurePlace</display-name>
        <web-resource-collection>
            <web-resource-name>Secure Place</web-resource-name>
            <description>Description here</description>
            <url-pattern>/Secure/*</url-pattern>
        </web-resource-collection>
        <auth-constraint>
            <description>descrition here</description>
            <role-name>Regular-Group</role-name>
        </auth-constraint>
        <user-data-constraint>
            <description/>
            <transport-guarantee>CONFIDENTIAL</transport-guarantee>
        </user-data-constraint>
    </security-constraint>

    <login-config>
        <auth-method>BASIC</auth-method>
        <realm-name>myRealm</realm-name>
    </login-config>
    <security-role>
        <role-name>Regular-Group</role-name>
    </security-role>

我正在使用 SSH 会不会导致问题?有什么建议么 ???

4

1 回答 1

0

首先,你的日志输出是什么?将安全日志级别更改为最好并共享输出。

现在快速思考:

  • 您不能在 jdbcRealm 中为 Glassfish 提供规范化表。

你必须有一张桌子

"username" "pasword" "role"

或两张桌子

"username" "password"

"username" "role"

并且两个表中的“用户名”列名称和内容必须相同

  • 您是否以纯文本或 MD5 或 SHA-1 SHA-2 存储密码?记得指定正确的密码哈希方法。如您所见,默认值为 SHA-256

总而言之,对于正确的数据库连接和错误的通行证,它可能是“未经授权的错误”,也可能是某种配置错误,即“未找到登录模块”。我们需要日志详细信息。

于 2012-09-04T12:36:23.190 回答