程式碼通過Subject來進行認證和授權等操作,而Subject又將這個操作委託給SecurityManager,我們將要驗證的資料來源注入到Realm中,SecurityManager在Realm中查詢資料進行驗證。
授權問題:
1.隱式角色
在使用的過程中,我們直接判斷相應的Subject是否是某一種角色,進而判斷該Subject是否具備某種許可權,subject.hasrole(role)
2.顯示角色
顯式角色是一種基於資源的訪問許可權控制,需要我們自己手動維護使用者-角色、角色-許可權之間的關係。
定義角色對應的許可權,許可權的定義格式一般是資源:操作。
#單個資源多個許可權
role1 = user:create,user:update
判斷:subject.isPermittedAll("user:delete", "user:update")