2

我使用以下属性配置了我的 glassfish 自定义领域:

Jaas:                jdbcRealm
JNDI:                jdbc/myDatasource
User Table:          usuario
user name column:    nombre
password-column:     password
group-table:         usuario
group-name column:   grupo

这是我数据库中的引用表:

乌苏里奥:

|               usuario                    |
____________________________________________
| nombre      | password      | grupo      |
--------------------------------------------
| SSS         |               | ADMIN      |
--------------------------------------------
| AAA         | AAA           | ADMIN      |
--------------------------------------------

我的问题是这样的:

用户 'SSS' 登录没有问题,所以领域做得很好,另一方面 AAA 无法获得身份验证,密码不匹配。

这是我的登录表单:

<p:panel header="Login From">
        <form method="POST" action="j_security_check">
            Username: <input type="text" name="j_username" />
            Password: <input type="password" name="j_password" />
            <br />
            <input type="submit" value="Login" />
            <input type="reset" value="Reset" />
        </form> 
    </p:panel>

还有一件事,即使我在登录表单中为它写了任何密码,“SSS”用户也会登录。

拜托,一些帮助会很棒。先感谢您。

4

1 回答 1

3

您知道 glassfish JDBCRealms 使用密码散列吗?所以通常你必须在你的数据库中存储散列密码(Glassfish 3.1 JDBCRealm 默认使用 SHA-256,之前的版本使用 MD-5,其他 Realm 类型甚至可能有不同的默认散列算法)。

它适用于空密码的情况可能是服务器将使用空密码的用户处理为“匿名”,他们可以在没有密码或任何密码的情况下登录。那么你的配置将是一个严重的威胁。

于 2011-11-09T07:04:32.073 回答