Spring mvc Spring安全性:如何向各自的用户提供访问相同Restful Web服务的权限

Spring mvc Spring安全性:如何向各自的用户提供访问相同Restful Web服务的权限,spring-mvc,spring-security,Spring Mvc,Spring Security,Spring安全问题:-我正在为我的应用程序使用Spring安全性(最新版本3.2.7.RELEASE和Spring Framework版本4.0.9.RELEASE),我有一些情况,我不知道如何分别访问这两个版本。寻找最快可能的反应 场景:我有两种不同类型的用户,其中测试员的权限低于开发人员 角色开发人员 角色测试仪 在我的应用程序中,通过用户界面,我拥有开发人员和测试人员通用的更新“分析”功能。我想让开发人员只更新他自己的“分析”(如果他使用DEVELOPER access登录),让TE

Spring安全问题:-我正在为我的应用程序使用Spring安全性(最新版本3.2.7.RELEASE和Spring Framework版本4.0.9.RELEASE),我有一些情况,我不知道如何分别访问这两个版本。寻找最快可能的反应

场景:我有两种不同类型的用户,其中测试员的权限低于开发人员

  • 角色开发人员
  • 角色测试仪
在我的应用程序中,通过用户界面,我拥有开发人员和测试人员通用的更新“分析”功能。我想让开发人员只更新他自己的“分析”(如果他使用DEVELOPER access登录),让TESTER更新他自己的分析(如果他使用TESTER access登录)。他们应该只能像只读格式一样查看彼此的分析,但不能更新彼此的分析

以下是映射到相应RESTfulWeb服务(WS)的Spring安全过滤器,我如何开发以满足上述两个条件

注意:我只想使用XML配置(不带注释)来完成


选项1: 如果您使用的是Spring 3.1及更新版本,则可以通过扩展RequestMappingHandlerMapping来创建自定义的“getCustomMethodCondition”方法。因此,通过实现方法重载,您可以让它指导用户使用正确的方法

请看以下类似问题的答案:

备选案文2: 一旦您已经在该方法中,获取与该用户关联的角色,然后为每种类型的用户激活相关流程

e、 g


希望这有助于引导您朝正确的方向前进。

谢谢-但是我们如何仅通过XML配置实现这一点?具体是哪一部分?它们都是不同的,做的事情也不同。我的意思是,以上所有功能都应该只通过XML配置来实现。不,所有这些都需要您进行java编码。选项1 XML配置只能指向定制的定制RequestMappingHandlerMapping作为示例。选项2仅在控制器本身的方法中完成。在XML中实现这一点的唯一方法是为不同的角色提供不同的URL,这是您不想要的。
<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')" />
userrole = user.getRole();
if(userrole = "ROLE_DEVELOPER) {
//do this stuff
}
else if(userrole = "ROLE_TESTER") {
// do this stuff
}