2017-05-09 85 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。