Spring security 使用Spring安全性验证方法参数

Spring security 使用Spring安全性验证方法参数,spring-security,Spring Security,我使用的是SpringSecurity 3.1.4 我有一个UsersManager类,如下所示: 公共类用户管理器{ @安全(“角色\管理员”) 公共无效更新(用户){ .... .... } } 公共类用户{ 整数id; 字符串名; 整数部门ID; } 要求如下: 用户只允许更新其部门的用户。 考虑到用户依赖于安全会话,有没有办法使用Spring Security实现这一点?您需要扩展org.springframework.Security.core.userdetails.User并将其

我使用的是SpringSecurity 3.1.4

我有一个UsersManager类,如下所示:

公共类用户管理器{
@安全(“角色\管理员”)
公共无效更新(用户){
....
....
}
}
公共类用户{
整数id;
字符串名;
整数部门ID;
}
要求如下: 用户只允许更新其部门的用户。
考虑到用户依赖于安全会话,有没有办法使用Spring Security实现这一点?

您需要扩展
org.springframework.Security.core.userdetails.User
并将其添加到
部门ID
属性中。然后确保Spring Security将此对象用作主体(提供您的UserDetailsService,在登录时设置departmentId)。然后你可以做:

@预授权(“hasRole('ROLE_ADMIN')和#principal.departmentId==#user.departmentId”)
公共无效更新(用户){

您需要扩展
org.springframework.security.core.userdetails.User
并将其添加到
departmentId
属性中。然后确保Spring security将此对象用作主体(提供您的userdetails服务,在登录时设置departmentId)。然后您可以执行以下操作:

@预授权(“hasRole('ROLE_ADMIN')和#principal.departmentId==#user.departmentId”)
公共无效更新(用户){