Shiro架构
1 shiro介紹
shiro是apache的一個開源框架,是一個權限管理的框架,實現 用戶認證、用戶授權、加密、會話管理等功能,組成了一個通用的安全認證框架。
2 總覽
? ?在最頂層,Shiro的架構有3個主要概念:Subject、SecurityManager和Realms。
? ?
2.1 Subject
Subject即主體,外部應用與subject進行交互,subject記錄了當前操作用戶,將用戶的概念理解為當前操作的主體,可能是一個通過瀏覽器請求的用戶,也可能是一個運行的程序。
Subject在shiro中是一個接口,接口中定義了很多認證授相關的方法,外部程序通過subject進行認證授,而subject是通過SecurityManager安全管理器進行認證授權。
2.2?SecurityManager
SecurityManager即安全管理器,對全部的subject進行安全管理,它是shiro的核心,負責對所有的subject進行安全管理。通過SecurityManager可以完成subject的認證、授權等。
2.3 Realm
? ??Realm即領域,相當于datasource數據源。連接shiro與用戶數據的橋梁,shiro需要訪問用戶的安全數據時,如:用戶認證和授權,通過系統配置的各種realm從數據源讀取數據。
?
3 詳細說明
?
? ? ??
subject:主體,可以是用戶也可以是程序,主體要訪問系統,系統需要對主體進行認證、授權。
securityManager:安全管理器,主體進行認證和授權都 是通過securityManager進行。
authenticator:認證器,主體進行認證最終通過authenticator進行的。
?
authorizer:授權器,主體進行授權最終通過authorizer進行的。
?
sessionManager:web應用中一般是用web容器對session進行管理,shiro也提供一套session管理的方式。
SessionDao: ?通過SessionDao管理session數據,針對個性化的session數據存儲需要使用sessionDao。
?
cacheManager:緩存管理器,主要對session和授權數據進行緩存,比如將授權數據通過cacheManager進行緩存管理,和ehcache整合對緩存數據進行管理。
?
? realm:域,領域,相當于數據源,通過realm存取認證、授權相關數據。
注意:在realm中存儲授權和認證的邏輯。
?
? cryptography:密碼管理,提供了一套加密/解密的組件,方便開發。比如提供常用的散列、加/解密等功能。比如 md5散列算法。
?
4 jar包
? shiro-core:核心包,shiro-web:與Web整合,shiro-spring:與spring整合,shiro-quartz:與任務調度整合
<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>1.3.2</version> </dependency> <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-web</artifactId><version>1.3.2</version> </dependency> <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>1.3.2</version> </dependency> <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-ehcache</artifactId><version>1.3.2</version> </dependency> <dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-quartz</artifactId><version>1.3.2</version> </dependency>也可以簡單粗暴的引入所有的jar包
<dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-all</artifactId><version>1.3.2</version> </dependency>?
5 官網地址
http://shiro.apache.org/
?
轉載于:https://www.cnblogs.com/zhangxianming/p/8654906.html
新人創作打卡挑戰賽發博客就能抽獎!定制產品紅包拿不停!總結
- 上一篇: 我的博客搭建(1)
- 下一篇: 物联网学习之路——物联网通信技术:NBI