jfinal使用shiro注解大体流程
2019獨角獸企業重金招聘Python工程師標準>>>
上一篇答題梳理了jfinal整合shiro的流程,jfinal讀取shiro注解,這一篇將作為補充。
1.JFinalShiroPlugin作者為shiro的RequiresRoles,RequiresPermissions, RequiresAuthentication,RequiresUser,RequiresGuest注解分別都寫了一個訪問控制處理器,如AuthenticatedAuthzHandler,GuestAuthzHandler,PermissionAuthzHandler,PermissionAuthzHandler,RoleAuthzHandler,UserAuthzHandler,這些類都繼承了AbstractAuthzHandler,并實現了AuthzHandler接口。CompositeAuthzHandler可以是以上類的組合。這些類的作用就是處理控制器和方法上的注解,通過Subject subject = getSubject();獲取當前登錄用戶擁有的權限,與注解進行對比,如果注解的權限包含在擁有的權限,則可以訪問該控制器或方法。
2.這些訪問控制處理器都在啟動JFinalShiroPlugin插件的時候生成了實例和與之對應的actionKey.放在類型為ConcurrentMap的authzMaps變量中。通過調用 ShiroKit.init(authzMaps)方法使得這個變量成為系統全局變量。這里代碼可參考上一篇ShiroPlugin插件最主要的start方法。
3.現在有了訪問控制處理器實例及其對應的actionkey,可以通過攔截器攔截沒有權限的用戶操作控制器
轉載于:https://my.oschina.net/u/2427561/blog/1524170
總結
以上是生活随笔為你收集整理的jfinal使用shiro注解大体流程的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java核心技术卷1基础知识整理
- 下一篇: 关闭eslint检验;vue-cli3搭