如何使用JAAS进行组件特定的访问控制/授权?

时间:2013-07-05 14:22:58

标签: java security authorization access-control jaas

我喜欢独立于应用程序开发“业务”组件。因此,每个组件都是一个独立的项目,具有非常具体的职责,边界和依赖关系。

示例:书签组件。该组件负责创建,存储,删除和查询书签。

但是有一个重要的限制因素:每个用户都可以看到自己的书签,但他不能看到任何其他用户的书签。

  • 这令我感到困惑。一方面,这是关于访问控制和授权,这是横切关注点,因为许多组件需要它们。
  • 另一方面,这种约束与书签密切相关。因此,它特定于该组件。也许它像商业规则。

无论如何,我不确定应用程序的哪个部分对此负责。我已经使用JAAS实现了身份验证。因此,如果我也可以使用JAAS进行访问控制和授权,那将会很好,但我不确定这是否是一个适当的解决方案。

JAAS教程告诉我,我可以根据运行代码的人来执行授权/访问控制,我可以为我的应用程序(或本例中的组件)创建权限。另一方面,它部分地使用策略文件,但我不想通过文件授予每个用户访问权限。用户可以访问的书签信息存储在我的数据库中。

  1. JAAS是否能够解决这种访问控制/授权问题,如果是的话:怎么做?
  2. 是否有任何可能对我有帮助的模式?

1 个答案:

答案 0 :(得分:1)

您应该将每个书签的所有者存储在表格中。您应该要求每个请求都经过身份验证。然后,您应该只返回经过身份验证的用户拥有的记录。

如果您想让用户彼此分享,则会变得更加困难。