【发布时间】:2020-06-21 13:24:29
【问题描述】:
我正在尝试根据用户在组中的角色为用户授权某些操作的最佳方法。
例如,Peter 在 A 组中具有管理员角色,因此他可以踢 A 组中的成员和 B 组中的成员角色,因此他只能读取 B 组中的内容。
this is what model of user group relationship looks like.
有没有比在 UserDetails 中加载组角色更好的方法来实现授权:
(for (GroupUser groupuser: user.getGroupUsers()) {
authorities.add(new SimpleGrantedAuthority('Group_'+groupuser.getId().getGroupId()+'_'+groupuser.getRole()));}
【问题讨论】:
-
表格设计有一个小问题。您在关系表中创建了 ROLE。如此多对多的关系,你为什么要在关系表中保留角色?
-
角色是指特定组中的用户角色而不是一般角色@Gurkanİlleez
-
以我的拙见,分组角色而不是分组用户怎么样。用户可以拥有多个角色(授权),例如 read_b_content、read_a_content、write_a_content。当您从组中踢出用户时,您可以删除授权。
标签: spring spring-boot spring-security