真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

備忘錄七:Shiro基本概念

一:Shiro簡介

創(chuàng)新互聯(lián)公司專注為客戶提供全方位的互聯(lián)網(wǎng)綜合服務(wù),包含不限于成都做網(wǎng)站、成都網(wǎng)站制作、成都外貿(mào)網(wǎng)站建設(shè)、清徐網(wǎng)絡(luò)推廣、小程序定制開發(fā)、清徐網(wǎng)絡(luò)營銷、清徐企業(yè)策劃、清徐品牌公關(guān)、搜索引擎seo、人物專訪、企業(yè)宣傳片、企業(yè)代運(yùn)營等,從售前售中售后,我們都將竭誠為您服務(wù),您的肯定,是我們最大的嘉獎;創(chuàng)新互聯(lián)公司為所有大學(xué)生創(chuàng)業(yè)者提供清徐建站搭建服務(wù),24小時服務(wù)熱線:028-86922220,官方網(wǎng)址:www.cdcxhl.com

  1. Apache Shiro是Java的一個安全框架。

  2. Shiro 比Spring Security更簡單輕量。

  3. Shiro 可以實(shí)現(xiàn)認(rèn)證、授權(quán)、加密、會話管理、與Web集成、緩存等 

  4. Shiro不僅可以用在JavaSE環(huán)境,也可以用在JavaEE環(huán)境   

    備忘錄七:Shiro基本概念            

                                   

 Authentication 身份認(rèn)證/登錄,驗(yàn)證用戶是不是擁有相應(yīng)的身份;

 Authorization 授權(quán),即權(quán)限驗(yàn)證,驗(yàn)證某個已認(rèn)證的用戶是否擁有某個權(quán)限;

Session Manager 會話管理,即用戶登錄后就是一次會話,在沒有退出之前,它的所有信息都在會話中;會話可以是普通JavaSE環(huán)境的,      也可以是J2EE環(huán)境的,如Web環(huán)境;

Cryptography 加密,保護(hù)數(shù)據(jù)的安全性,如密碼加密存儲到數(shù)據(jù)庫,而不是明文存儲;

Web Support Web支持,可以非常容易的集成到Web環(huán)境;

Caching:緩存,比如用戶登錄后,其用戶信息、擁有的角色/權(quán)限不必每次去查,這樣可以提高效率;

Concurrency Shiro支持多線程應(yīng)用的并發(fā)驗(yàn)證,即如在一個線程中開啟另一個線程,能把權(quán)限自動傳播過去;

Testing 提供測試支持;

Run As 允許一個用戶假裝為另一個用戶(如果他們允許)的身份進(jìn)行訪問;

Remember Me 記住我,這個是非常常見的功能,即一次登錄后,下次再訪問的話不用重新登錄。

二:Shiro架構(gòu)

備忘錄七:Shiro基本概念

Subject 主體,可以看到主體可以是任何可以與應(yīng)用交互的“用戶”;

SecurityManager 相當(dāng)于SpringMVC中的DispatcherServlet或者Struts2中的FilterDispatcher;是Shiro的心臟;所有具體的交互都通過SecurityManager進(jìn)行控制;它管理著所有Subject、且負(fù)責(zé)進(jìn)行認(rèn)證和授權(quán)、及會話、緩存的管理。

Authenticator 認(rèn)證器,負(fù)責(zé)主體認(rèn)證的,這是一個擴(kuò)展點(diǎn),如果用戶覺得Shiro默認(rèn)的不好,可以自定義實(shí)現(xiàn)

Authrizer 授權(quán)器,或者訪問控制器,用來決定主體是否有權(quán)限進(jìn)行相應(yīng)的操作;即控制著用戶能訪問應(yīng)用中的哪些功能;

Realm 可以有1個或多個Realm,可以認(rèn)為是安全實(shí)體數(shù)據(jù)源,即用于獲取安全實(shí)體的;可以是JDBC實(shí)現(xiàn),也可以是LDAP實(shí)現(xiàn),或者內(nèi)存實(shí)現(xiàn)等等,一般應(yīng)用中都需要實(shí)現(xiàn)自己的Realm

SessionManager 不需要通過Servlet容器既可以實(shí)現(xiàn)Session管理,可以用于 JavaSE和 JavaEE環(huán)境。

SessionDAO Session存儲,可以使用數(shù)據(jù)庫或者緩存。

CacheManager 緩存控制器,來管理如用戶、角色、權(quán)限等的緩存的

Cryptography 密碼模塊,Shiro提高了一些常見的加密組件用于如密碼加密/解密的。

三:Shiro核心組件

備忘錄七:Shiro基本概念

1. Subject: 主體,代表了當(dāng)前“用戶”,與當(dāng)前應(yīng)用交互的任何東西都是Subject,如網(wǎng)格爬蟲,機(jī)器人等,是一個抽象的概念;所有Subject都綁定到SecurityManager,與Subject的所有交互都會委托給SecurityManager. 可以把Subject認(rèn)為是一個門面,SecurityManager才是實(shí)際的執(zhí)行者。

2.SecurityManager:安全管理器,所有與安全相關(guān)的操作都會與SecurityManager交互;它管理著所有Subject;是Shiro的核心。類似于SpringMVC中的DispatcherServlet。

3.Realm: 域,Shiro從Realm獲取安全數(shù)據(jù)(如用戶,角色,權(quán)限),SecurityManager要驗(yàn)證用戶身份,需要從Realm獲取相應(yīng)的用戶進(jìn)行比較以確定用戶身份是否合法;也需要從Realm得到用戶相應(yīng)的角色/權(quán)限進(jìn)行驗(yàn)證用戶是否能進(jìn)行操作,可以把Realm看成DataSource,即安全數(shù)據(jù)源。

四:Shiro認(rèn)證和授權(quán)的基本流程

備忘錄七:Shiro基本概念

1、首先調(diào)用 Subject.login(token)進(jìn)行登錄,其會自動委托給 Security Manager,調(diào)用之前必須通過 SecurityUtils. setSecurityManager()設(shè)置;

2、 SecurityManager負(fù)責(zé)真正的身份驗(yàn)證邏輯;它會委托給 Authenticator進(jìn)行身份驗(yàn)證;

3、 Authenticator才是真正的身份驗(yàn)證者, Shiro API中核心的身份認(rèn)證入口點(diǎn),此處可以自定義插入自己的實(shí)現(xiàn);

4、 Authenticator可能會委托給相應(yīng)的 AuthenticationStrategy進(jìn)行多 Realm身份驗(yàn)證,默認(rèn) ModularRealmAuthenticator會調(diào)用 AuthenticationStrategy進(jìn)行多 Realm身份驗(yàn)證;

5、 Authenticator會把相應(yīng)的 token傳入 Realm,從 Realm獲取身份驗(yàn)證信息,如果沒有返回 /拋出異常表示身份驗(yàn)證失敗了。此處可以配置多個 Realm,將按照相應(yīng)的順序及策略進(jìn)行訪問。




文章題目:備忘錄七:Shiro基本概念
網(wǎng)址分享:http://weahome.cn/article/jseehp.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部