【问题标题】:GlassFish 3 custom Realm password-columnGlassFish 3 自定义领域密码列
【发布时间】:2011-12-24 21:09:58
【问题描述】:

我使用以下属性配置了我的 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”用户也会登录。

请,一些帮助会很棒。 提前谢谢你。

【问题讨论】:

    标签: netbeans glassfish-3 jaas jdbcrealm


    【解决方案1】:

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

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

    【讨论】:

    • 你是对的,我没有在我的数据库中散列我的密码。它现在完美运行。非常感谢马特。
    猜你喜欢
    • 2012-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多