在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>
答案 0 :(得分:1)
您无法检查会话中的登录用户以及要求您从数据库中提取的配置文件是否相同?如果它们不匹配,则用户无法编辑该页面。理想情况下,我会将这种用户会话逻辑放在服务器过滤器中,它可以处理所有请求。
答案 1 :(得分:1)
这可以通过SEAM Framework轻松完成。您只需创建安全接口@Admin,然后创建一个检查方法public @Secure @Admin checkAdmin(Identity identity){}
之后,您只需将@Admin添加到您的方法中即可。
你可以做的另一件事,这更容易: 只需使用“已渲染”属性并检查登录的用户。