Spring Security具有Principal和GrantedAuthority的基本思想。我已經實現了Spring Security並閱讀了這個stackoverflow,並且在基本層次上理解「ROLE」不過是以「ROLE_」爲前綴的GrantedAuthority。Spring安全域模型授權
我不明白的是爲什麼要把這個約定放在第一位呢?爲什麼@PreAuthorize("hasRole('XYZ')")
等於@PreAuthorize("hasAuthority('ROLE_XYZ')")
?
像這樣隔離授權機構有什麼特別之處?目的是什麼?
此外,將這些「角色」應用於域模型的特定實例的最佳約定是什麼?以一個跟蹤項目的系統爲例,您希望明確授予用戶查看和編輯某些項目的權限。我可以創建ROLE_EDIT_PROJECT和ROLE_VIEW_PROJECT,但這是應用程序範圍內的。你會在哪裏與一個特定的項目建立一個角色的關係?一個連接表?你甚至會將Spring Security引入到這個中,或者在你的應用程序中從頭構建這種類型的安全性?