我的应用程序中有一个用户需要按类别公开某些数据。
例如:
具有 ROLE_CAMPAIGN 的用户 A 只能看到 WHERE campaign_category_id = 5
具有 ROLE_CAMPAIGN 的用户 b 只能看到 WHERE campaign_category_id IN(5,10,4)
(选择、插入、更新、删除)
User 和 Campaign 是 hibernate 实体。
他们的连接是多对多(用户有 CampaignsCategories )
如果我将其翻译成原生 SQL
SELECT * FROM CAMPAIGNS WHERE CATEGORY_ID IN (SELECT ID FROM USER_CATEGORIES)
等等。
为具有某种角色的用户实现动态的正确方法是什么。
小例子会有所帮助。
( Spring 安全3)
最佳答案
看起来您可以使用访问控制列表 (ACL) 来解决此问题:2 名员工拥有相同的 ROLE_EMPLOYEE 并且不能执行管理员可以执行的操作,但在该范围内他们不允许查看或删除每个别人的记录。
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/domain-acls.html应该会给你一个更好的主意。
关于java - spring security - 动态角色,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5284102/