一、實現類繼承AuthorizingRealm
1、實現方法doGetAuthenticationInfo,將定義的用戶實體類填充map,realmPrincipals;
2、實現方法doGetAuthorizationInfo,填充roles ,Permissions;
二,建立subject
提供SecurityUtils getSubject 方式創建,securityManager.createSubject,SubjectContext中進行確認map中已經存在securityManager,session以及PrincipalCollection,最後DefaultWebSubjectFactorywebectDelegSubsesjectFactorywebectk
三、登入驗證
登入創建,DelegatingSubject login方法執行securityManager login,建立同第二步驟。
四、登出
DelegatingSubject logout方法執行securityManager logout,刪除session中的subject,stop session。
五、關於ModularRealmAuthenticator
ModularRealmAuthenticator類別在專案啟動時setRealms(第一步中定義,不清楚為什麼專案啟動時注入),doSingleRealmAuthentication方法呼叫realm的doGetAuthorizationInfo
以上是實例講解shiro登入認證和權限控制的詳細內容。更多資訊請關注PHP中文網其他相關文章!