我需要爲我的REST API提供基於角色的訪問,並且我看到我們可以使用@PreAuthorize, @Secured
來實現此目的。不過,我不確定我應該做什麼樣的改變,因爲目前我使用custom token based authentication mechanism
爲會話生成令牌並自己處理它。如何整合基於角色的URL /方法訪問Spring Security安全
@RequestMapping(value = "login", method = RequestMethod.POST)
public @ResponseBody Result login(@RequestBody Credentials credentials) {
return loginService.login(credentials.getUsername(), credentials.getPassword());
}
Result類只包含爲每個請求傳遞的用戶生成的令牌。
現在,任何想法,我應該做出什麼樣的變化,如果我想限制API findById
由用戶只能訪問,如果他是一部分,如果用戶是在特定角色
例如限制API的訪問ADMIN_ROLE
然後我將不得不添加PreAuthorize
註釋,但不知道這將如何確定用戶角色並自動阻止用戶。
@PreAuthorize("ADMIN_ROLE")
@RequestMapping(value = "{id}", method = RequestMethod.GET)
public @ResponseBody Group findById(@PathVariable int id) {
return groupParser.getGroupById(id, groupService.getGroupTree());
}
予處理基於自定義令牌認證 @RequestMapping(值= 「登錄」,方法= RequestMethod.POST) 公共結果@ResponseBody登錄(@RequestBody憑證的憑證){ 返回loginService.login(credentials.getUsername( ),credentials.getPassword()); } –
請不要解釋配置,而是發佈它:-)如果你願意,你會得到更準確的答案。 –
謝謝@StefanoCazzola。我做了一些更改並添加了更多信息。 –