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

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

備忘錄七:Shiro基本概念-創(chuàng)新互聯(lián)

一:Shiro簡(jiǎn)介

成都創(chuàng)新互聯(lián)是一家專注于成都網(wǎng)站設(shè)計(jì)、成都網(wǎng)站制作與策劃設(shè)計(jì),徐水網(wǎng)站建設(shè)哪家好?成都創(chuàng)新互聯(lián)做網(wǎng)站,專注于網(wǎng)站建設(shè)十多年,網(wǎng)設(shè)計(jì)領(lǐng)域的專業(yè)建站公司;建站業(yè)務(wù)涵蓋:徐水等地區(qū)。徐水做網(wǎng)站價(jià)格咨詢:13518219792
  1. Apache Shiro是Java的一個(gè)安全框架。

  2. Shiro 比Spring Security更簡(jiǎn)單輕量。

  3. Shiro 可以實(shí)現(xiàn)認(rèn)證、授權(quán)、加密、會(huì)話管理、與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)證某個(gè)已認(rèn)證的用戶是否擁有某個(gè)權(quán)限;

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

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

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

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

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

Testing 提供測(cè)試支持;

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

Remember Me 記住我,這個(gè)是非常常見(jiàn)的功能,即一次登錄后,下次再訪問(wèn)的話不用重新登錄。

二:Shiro架構(gòu)

備忘錄七:Shiro基本概念

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

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

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

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

Realm 可以有1個(gè)或多個(gè)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 不需要通過(guò)Servlet容器既可以實(shí)現(xiàn)Session管理,可以用于 JavaSE和 JavaEE環(huán)境。

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

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

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

三:Shiro核心組件

備忘錄七:Shiro基本概念

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

2.SecurityManager: 安全管理器,所有與安全相關(guān)的操作都會(huì)與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)行登錄,其會(huì)自動(dòng)委托給 Security Manager,調(diào)用之前必須通過(guò) SecurityUtils. setSecurityManager()設(shè)置;

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

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

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

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



標(biāo)題名稱:備忘錄七:Shiro基本概念-創(chuàng)新互聯(lián)
文章來(lái)源:http://weahome.cn/article/jpgdg.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部