我使用以下属性配置了我的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'用户登录即使我在登录表单中为其写了任何密码。
拜托,一些帮助会很棒。 提前谢谢。
答案 0 :(得分:3)
您是否知道glassfish JDBCRealms使用密码哈希?所以通常你必须在你的数据库中存储散列密码(Glassfish 3.1 JDBCRealm默认使用SHA-256,之前的版本使用MD-5,其他Realm类型甚至可能有不同的默认散列算法)。
它适用于空密码的情况可能是服务器将具有空密码的用户处理为“匿名”,无需密码或使用任何密码即可登录。那么你的配置将是一个严重的威胁。