shiro簡(jiǎn)介
1. 什么是shiro
Aparche shiro 是java的一個(gè)安全框架,屬于Aparche軟件基金會(huì)孩灯」虢穑可以提供認(rèn)證,授權(quán)峰档,加密败匹,會(huì)話管理,緩存等一些列權(quán)限操作讥巡。
2. shiro的組成部分
shiro框架功能組成大致如下圖:
核心部分有:
- 身份認(rèn)證
- 授權(quán)
- session會(huì)話管理
- 加密
shiro的項(xiàng)目實(shí)現(xiàn)架構(gòu)
主要涉及到三那個(gè)主體:
- Subject:當(dāng)前用戶對(duì)象掀亩。即shiro框架對(duì)外的門面。所有的操作入口欢顷。
- securityManager:管理著所有的Subject,是權(quán)限操作的實(shí)際執(zhí)行者槽棍。
- Realm:為安全數(shù)據(jù)源。即權(quán)限存儲(chǔ)位置。shiro不設(shè)置權(quán)限炼七。而是管理權(quán)限外里。權(quán)限的規(guī)則需用戶提供。
shiro內(nèi)部實(shí)現(xiàn)架構(gòu)大致如圖所示:
關(guān)鍵組件介紹:
subject:主體特石,可以是用戶也可以是程序盅蝗,主體要訪問系統(tǒng),系統(tǒng)需要對(duì)主體進(jìn)行認(rèn)證姆蘸、授權(quán)墩莫。
securityManager:安全管理器,主體進(jìn)行認(rèn)證和授權(quán)都 是通過securityManager進(jì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管理的方式牛柒。
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ù)。