Java EE技术中的数据访问控制

时间:2010-07-20 11:23:52

标签: java security java-ee

我正在开发一个项目,该项目要求我实现一种机制来控制对页面上显示的内容的数据访问。

首先澄清一下,我并未提及不同用户登录特定页面和/或查看特定页面的能力。这是一种不同类型的访问控制。我对“数据访问”更感兴趣,即多个用户可以查看同一页面,但显示的数据取决于他们拥有的数据访问控制权限。

我很想知道实施“数据访问”控制的不同方法。这种东西有没有框架?我目前正在使用Struts。

我正在考虑这样做,我需要以某种方式对我保留的数据进行分类和存储,以及哪些用户可以查看/修改它。我想尽量避免从头开始制作一些东西,所以我想知道专家是如何做到的,以及哪些框架技术可以帮助他们做到这一点。

2 个答案:

答案 0 :(得分:1)

您正在寻找授权解决方案吗?你已经检查过JAAS,OSUser和similars吗? 身份验证要求可能有很大差异,我认为您需要更具体,尝试添加用例。

答案 1 :(得分:1)

我想你需要Spring Security Framework。使用此框架,您可以为不同的用户分配不同的角色。例如,我们可以定义两个角色:ROLE_USER,ROLE_ADMIN。然后我们将这些角色分配给用户。例如,用户A只能有一个角色,ROLE_USER和用户B可以同时拥有这两个角色。现在,如果在特定的JSP上,您只想向用户B显示某些内容,则可以将代码放入一对授权标记中:

<sec:authorize ifAllGranted="ROLE_USER, ROLE_ADMIN">
     <!-- html, jsp scriplets, jstl tags inside here will be visible to user B only --> 
</sec:authorize>

同样,如果你想向他们两个展示一些东西:

<sec:authorize ifAllGranted="ROLE_USER">
     <!-- anything inside here will be visible to both users --> 
</sec:authorize>

希望它有所帮助。