GlassFish 3自定义Realm密码列

时间:2011-11-08 22:48:11

标签: netbeans glassfish-3 jaas jdbcrealm

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

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

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

usuario:

|               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'用户登录即使我在登录表单中为其写了任何密码。

拜托,一些帮助会很棒。 提前谢谢。

1 个答案:

答案 0 :(得分:3)

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

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