Spring Security问题: - 我正在使用Spring Security(最新版本3.2.7.RELEASE& Spring Framework版本4.0.9.RELEASE)用于我的应用程序,我有一些条件,我不明白如何允许单独访问。寻找最快可能的回应。
场景:我有两种不同类型的用户,其中两种TESTER的权限低于开发者
在我的应用程序中,通过用户界面 - 我具有开发人员和测试人员共同更新“分析”的功能。我想允许DEVELOPER只更新他自己的“分析”(如果他使用DEVELOPER访问登录)和TESTER更新他自己的分析(如果他使用TESTER访问登录)。他们应该只能看到彼此分析,如只读格式,但不应该更新彼此分析。
以下是映射到相应RestFul Web服务(WS)的Spring Security过滤器,我如何开发以满足上述两个条件?
注意:我想只使用XML配置(没有注释)
<intercept-url method="PUT" pattern="/user/update/analysis/**"
access="hasRole('ROLE_TESTER')" />
<intercept-url method="PUT" pattern="/user/update/analysis/**"
access="hasRole('ROLE_DEVELOPER')" />
<intercept-url method="GET" pattern="/user/GET/analysis/**"
access="hasRole('ROLE_DEVELOPER')" />
<intercept-url method="GET" pattern="/user/GET/analysis/**"
access="hasRole('ROLE_TESTER')" />
答案 0 :(得分:0)
选项1: 如果您使用的是Spring 3.1及更高版本,则可以创建自定义&#39; getCustomMethodCondition&#39;通过扩展RequestMappingHandlerMapping的方法。因此,实现方法重载可以让它指导用户纠正方法。
在此处查看类似问题的以下答案:
选项2: 进入方法后,获取与用户关联的ROLE,然后为每种类型的用户激活相关流程。
e.g。
userrole = user.getRole();
if(userrole = "ROLE_DEVELOPER) {
//do this stuff
}
else if(userrole = "ROLE_TESTER") {
// do this stuff
}
希望这有助于指导您朝着正确的方向前进。