spring security允​​许用户只重置他们的密码

时间:2017-05-09 09:07:05

标签: spring-mvc spring-boot spring-security

我有一个允许更新用户信息的控制器

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

这样只有具有ADMIN角色的用户才能更新用户。我想以这种方式修改安全措施:

  • 没有角色管理员的用户只能更新他的信息
  • 管理员可以更新每个用户

有一种方法可以使用spring secutiry标签来实现它吗?

由于 Esoni

1 个答案:

答案 0 :(得分:0)

做这样的事

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

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