黄色网址大全免费-黄色网址你懂得-黄色网址你懂的-黄色网址有那些-免费超爽视频-免费大片黄国产在线观看

專注Java教育14年 全國(guó)咨詢/投訴熱線:400-8080-105
動(dòng)力節(jié)點(diǎn)LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁(yè) hot資訊 Shiro框架原理解析

Shiro框架原理解析

更新時(shí)間:2021-07-29 17:01:22 來(lái)源:動(dòng)力節(jié)點(diǎn) 瀏覽1547次

1.什么是shiro

shiro是apache公司下一款優(yōu)秀的Java安全認(rèn)證框架,它強(qiáng)大且容易使用,它支持身份驗(yàn)證、授權(quán)、密碼和會(huì)話管理功能,與shiro有著同樣功能的框架是Spring Security,對(duì)比Spring Security來(lái)看,shiro用起來(lái)簡(jiǎn)單且可以脫離Spring使用,但是Spring Security不能夠脫離Spring去使用,shiro屬于一種輕量級(jí)的框架,所以許多公司都在使用shiro。

2.框架原理圖及名詞解釋

shiro框架原理

名詞解釋

subject:主體,可以是用戶也可以是程序,主體要訪問系統(tǒng),系統(tǒng)需要對(duì)主體進(jìn)行認(rèn)證、授權(quán)。

securityManager:安全管理器,主體進(jìn)行認(rèn)證和授權(quán)都是通過securityManager進(jìn)行。它包含下面的認(rèn)證器和授權(quán)器。

authenticator:認(rèn)證器,主體進(jìn)行認(rèn)證最終通過authenticator進(jìn)行的。

authorizer:授權(quán)器,主體進(jìn)行授權(quán)最終通過authorizer進(jìn)行的。

sessionManager:web應(yīng)用中一般是用web容器對(duì)session進(jìn)行管理,shiro也提供一套session管理的方式。可以實(shí)現(xiàn)單點(diǎn)登錄。

SessionDao:通過SessionDao管理session數(shù)據(jù),針對(duì)個(gè)性化的session數(shù)據(jù)存儲(chǔ)需要使用sessionDao。

cache Manager:緩存管理器,主要對(duì)session和授權(quán)數(shù)據(jù)進(jìn)行緩存,比如將授權(quán)數(shù)據(jù)通過cacheManager進(jìn)行緩存管理,和ehcache整合對(duì)緩存數(shù)據(jù)進(jìn)行管理。

realm:域,領(lǐng)域,相當(dāng)于數(shù)據(jù)源,通過realm存取認(rèn)證、授權(quán)相關(guān)數(shù)據(jù)。(它的主要目的是與數(shù)據(jù)庫(kù)打交道,查詢數(shù)據(jù)庫(kù)中的認(rèn)證的信息(比如用戶名和密碼),查詢授權(quán)的信息(比如權(quán)限的code等,所以這里可以理解為調(diào)用數(shù)據(jù)庫(kù)查詢一系列的信息,一般情況下在項(xiàng)目中采用自定義的realm,因?yàn)椴煌臉I(yè)務(wù)需求不一樣))

注意:在realm中存儲(chǔ)授權(quán)和認(rèn)證的邏輯。

cryptography:密碼管理,提供了一套加密/解密的組件,方便開發(fā)。比如提供常用的散列、加/解密等功能,比如md5散列算法。

認(rèn)證原理圖

shiro框架原理

認(rèn)證流程

subject(主體)請(qǐng)求認(rèn)證,調(diào)用subject.login(token)

SecurityManager(安全管理器)執(zhí)行認(rèn)證

SecurityManager通過ModularRealmAuthenticator進(jìn)行認(rèn)證。

ModularRealmAuthenticator將token傳給realm,realm根據(jù)token中用戶信息從數(shù)據(jù)庫(kù)查詢用戶信息(包括身份和憑證),realm如果查詢不到用戶給ModularRealmAuthenticator返回null,ModularRealmAuthenticator拋出異常(用戶不存在),realm如果查詢到用戶給ModularRealmAuthenticator返回AuthenticationInfo(認(rèn)證信息),ModularRealmAuthenticator拿著AuthenticationInfo(認(rèn)證信息)去進(jìn)行憑證(密碼)比對(duì)。如果一致則認(rèn)證通過,如果不致拋出異常(憑證錯(cuò)誤)。

授權(quán)原理圖

shiro框架原理

授權(quán)流程

對(duì)subject進(jìn)行授權(quán),調(diào)用方法isPermitted("")或者h(yuǎn)asRole("")

SecurityManager執(zhí)行授權(quán),通過ModularRealmAuthorizer執(zhí)行授權(quán)

ModularRealmAuthorizer執(zhí)行realm(自定義的CustomRealm)從數(shù)據(jù)庫(kù)查詢權(quán)限數(shù)據(jù)調(diào)用realm的授權(quán)方法:doGetAuthorizationInfo

realm從數(shù)據(jù)庫(kù)查詢權(quán)限數(shù)據(jù),返回ModularRealmAuthorizer

ModularRealmAuthorizer調(diào)用PermissionResolver進(jìn)行權(quán)限串比對(duì)

如果比對(duì)后,isPermitted中"permission串"在realm查詢到權(quán)限數(shù)據(jù)中,說(shuō)明用戶訪問permission串有權(quán)限,否則沒有權(quán)限,拋出異常。

Shiro過濾器標(biāo)簽配置列表及權(quán)限可訪問對(duì)比

/admins/**=anon               # 表示該 uri 可以匿名訪問/admins/**=auth               # 表示該 uri 需要認(rèn)證才能訪問/admins/**=authcBasic         # 表示該 uri 需要 httpBasic 認(rèn)證/admins/**=perms[user:add:*]  # 表示該 uri 需要認(rèn)證用戶擁有 user:add:* 權(quán)限才能訪問/admins/**=port[8081]         # 表示該 uri 需要使用 8081 端口/admins/**=rest[user]         # 相當(dāng)于 /admins/**=perms[user:method],其中,method 表示  get、post、delete 等/admins/**=roles[admin]       # 表示該 uri 需要認(rèn)證用戶擁有 admin 角色才能訪問/admins/**=ssl                # 表示該 uri 需要使用 https 協(xié)議/admins/**=user               # 表示該 uri 需要認(rèn)證或通過記住我認(rèn)證才能訪問/logout=logout                # 表示注銷,可以當(dāng)作固定配置

以上就是動(dòng)力節(jié)點(diǎn)小編介紹的"Shiro框架原理解析",希望對(duì)大家有幫助,想了解更多可查看Shiro視頻教程。動(dòng)力節(jié)點(diǎn)在線學(xué)習(xí)教程,針對(duì)沒有任何Java基礎(chǔ)的讀者學(xué)習(xí),讓你從入門到精通,主要介紹了一些Java基礎(chǔ)的核心知識(shí),讓同學(xué)們更好更方便的學(xué)習(xí)和了解Java編程,感興趣的同學(xué)可以關(guān)注一下。

提交申請(qǐng)后,顧問老師會(huì)電話與您溝通安排學(xué)習(xí)

免費(fèi)課程推薦 >>
技術(shù)文檔推薦 >>
主站蜘蛛池模板: 26uuu最新地址 | 青青免费在线视频 | 美国十次狠狠色综合 | 污版网站| a毛片免费全部在线播放毛 a毛片免费全部播放毛 | 韩国伦理片免费在线观看 | 污版网站| 波多野结衣一区二区三区在线观看 | 免费乱理伦片泡泡影院琪琪 | 亚州色拍拍拍 | 精品午夜视频 | 亚洲三级视频 | 亚洲国产综合精品中文字幕 | 国产小视频在线 | 一级特黄aaa大片免色 | 国产成人手机视频 | 国产高清一区二区三区四区 | 日本不卡在线 | 91av国产在线 | 一个人的www免费视频 | 69堂午夜精品视频在线 | 色综合天天综合网站中国 | 欧美成人激情在线 | 97精品国产91久久久久久 | 成人小视频网 | 亚洲人色大成年网站在线观看 | 在线观看色视频 | 国外欧美一区另类中文字幕 | 欧美3p在线观看一区二区三区 | 亚欧色视频在线观看免费 | 欧美综合另类 | 日韩在线一区二区三区视频 | a一级爱做片免费观看欧美 a一级爱做片免费 | 在线播放色 | 免费国产成人高清视频网站 | 天天操夜夜操狠狠操 | 日本天堂网站 | 亚洲日本天堂 | 久久久五月 | 精品国产第一国产综合精品 | 日本a视频 |