2017-05-09 84 views
1

我一个控制器,允许更新用户信息春季安全允许用户只重置其密码

@RequestMapping(value = "user/{id}", method = RequestMethod.PUT) 
@PreAuthorize("hasRole('ADMIN')") 
public ResponseEntity<User> updateUser(@PathVariable("id") long id, @RequestBody User user) { 

这样,只有用户具有角色admin更新的用户。我想修改secutiry这样:

  • 没有作用管理员的用户只能更新个人信息
  • 管理员可以更新每个用户

还有就是要实现这个用弹簧的方式安全标签?

感谢 Esoni

+2

'@PreAuthorize('hasRole('ADMIN')or#user.name == authority.name)''沿着这些行。 –

回答

0

做这样的事情

@PreAuthorize("#user.username==principal.username || hasRole('ADMIN')") 

这种检查是否登录的用户名称名称和更新的用户名是相同的或用户具有角色admin。