在我们的应用程序中,我们计划使用该RoleVoter机制但我们想删除ROLE_前缀,因为我们正在实现的安全性比基于角色的任务更基于任务.
从技术上讲,实现没有问题,但我在文档中发现,不鼓励使用RoleVoter带有空前缀.
我想知道为什么?
AFAICS,唯一的问题是,如果没有前缀时,RoleVoter将参与决策,这并不意味着(如IS_AUTHENTICATED_FULLY,IS_AUTHENTICATED_REMEMBERED...)和威力返回否认,而不是弃权的访问.
您能否确认这是唯一一个空前缀的问题?
在此先感谢M.
Sha*_*eep 15
是.如果您使用多个选民或自定义选民,那么他们需要某种方式知道他们应该使用哪些属性.例如,如果您有一个DayOfTheWeekVoter并且您拥有使用属性定义的资源,ROLE_USER,DAY_MONDAY那么RoleVoter可能会投票授予访问权限,因为用户具有角色"User",但DayOfTheWeekVoter可能拒绝访问,因为它不是星期一.
如果您没有配置RoleVoter前缀,那么它将检查用户是否具有分配给他们的名为"DAY_MONDAY"的权限,因此这种情况将不起作用.
如果您只对角色感兴趣,那么您可以不使用前缀,或者您可以使用hasRole('user')不使用a的表达式(例如)RoleVoter.
| 归档时间: |
|
| 查看次数: |
5351 次 |
| 最近记录: |