我们正在构建Java Web应用程序。我们使用EJB容器和JPA与Wildfly 9.2。如何仅将EJB角色授予某些实体
现在我们想要整合一个用户具有特定角色的权限系统,但是这个角色只能与某个实体组合授予。我将命名这个访问资源部门。
因此,我们将有权限的列表存储在这样一个表中的用户:
| User ID | Department | Role |
| ------- | ---------- | ------- |
| 1 | A | MANAGER |
| 1 | B | ADMIN |
| 2 | B | MANAGER |
此外,我们有全球性的角色。用户具有一组全局角色,如果上述表中没有涉及有关部门的条目,则将应用该全局角色。
| User ID | Role |
| ------- | ------- |
| 1 | VIEWER |
| 3 | MANAGER |
我们如何轻松检查某个用户是否在特定角色下给予某个部门?
通过使用注释@RolesAllowed,我们可以检查某个角色,但不限于某个部门。
过滤器如何?给定一个URL,是否知道哪个部门将被该URL访问?如果用户不在这些部门中,则拒绝该请求。无论解决方案是什么,当重组和部门改变时会发生什么? –
或EJB层上可能的拦截器。 –
谢谢你的建议。我们当然会研究这一点。 我们目前也在研究Apache Shiro。这可能会满足我们的要求。 –