我喜欢开发独立于应用程序的“业务”组件。因此,每个组件都是自己的项目,具有非常具体的职责、边界和依赖关系。
示例:书签组件。该组件负责创建、存储、删除和查询书签。
但是有一个重要的限制:每个用户都可以看到自己的书签,但他不能看到任何其他用户的书签。
- 这让我很困惑。一方面,这是关于横切关注点的访问控制和授权,因为许多组件都需要它们。
- 另一方面,此约束与书签密切相关。因此,它特定于该组件。也许它就像一个商业规则。
无论如何,我不确定应用程序的哪一部分对此负责。我已经使用 JAAS 实现了身份验证。因此,如果我也可以使用 JAAS 进行访问控制和授权,那就太好了,但我不确定这是否是一个适当的解决方案。
JAAS 教程告诉我,我可以根据谁在运行代码进行授权/访问控制,并且可以为我的应用程序(或本例中的组件)创建权限。另一方面,它部分适用于策略文件,但我不想通过文件授予每个用户访问权限。用户可以访问哪些书签的信息存储在我的数据库中。
- JAAS 是否能够解决这种访问控制/授权,如果可以:如何解决?
- 有什么模式可以帮助我吗?