0

在 Glassfish 上使用容器管理的安全性,您如何制作单独的“个人资料”页面并限制只有登录的人才能更改它?假设你有用户“John”和“Amanda”,他们都有“用户”角色,你怎么能确定只有“John”可以改变他的个人资料页面,而不是“Amanda”?

<form method="POST" action="j_security_check">
    <table>
        <tr>
            <td>User name:</td>
            <td><input type="text" name="j_username" /></td>
        </tr>
        <tr>
            <td>Password:</td>
            <td><input type="password" name="j_password" /></td>
        </tr>
        <tr>
            <td><input type="submit" value="Login" /></td>
        </tr>
    </table>
</form>
4

2 回答 2

1

您不能检查会话中的登录用户和您被要求从数据库中获取的配置文件是否相同?如果它们不匹配,则用户无法编辑该页面。理想情况下,我会将这种用户会话逻辑放在服务器过滤器中,这样它就可以处理所有请求。

于 2012-04-14T11:40:22.337 回答
1

这可以通过 SEAM Framework 轻松完成。您只需创建安全接口@Admin,然后创建一个检查器方法 public @Secure @Admin checkAdmin(Identity identity) {}

之后,您可以将 @Admin 添加到您的方法中。

您可以做的另一件事更容易:只需使用属性“rendered”并检查哪个用户已登录。

于 2012-04-15T05:41:02.783 回答