![《shiro入門學(xué)習(xí)》課件_第1頁](http://file4.renrendoc.com/view14/M05/0F/28/wKhkGWeuqzKALT5iAAHiXQ7Gix8094.jpg)
![《shiro入門學(xué)習(xí)》課件_第2頁](http://file4.renrendoc.com/view14/M05/0F/28/wKhkGWeuqzKALT5iAAHiXQ7Gix80942.jpg)
![《shiro入門學(xué)習(xí)》課件_第3頁](http://file4.renrendoc.com/view14/M05/0F/28/wKhkGWeuqzKALT5iAAHiXQ7Gix80943.jpg)
![《shiro入門學(xué)習(xí)》課件_第4頁](http://file4.renrendoc.com/view14/M05/0F/28/wKhkGWeuqzKALT5iAAHiXQ7Gix80944.jpg)
![《shiro入門學(xué)習(xí)》課件_第5頁](http://file4.renrendoc.com/view14/M05/0F/28/wKhkGWeuqzKALT5iAAHiXQ7Gix80945.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
Shiro入門學(xué)習(xí)本課件將帶你深入了解ApacheShiro,一個強(qiáng)大而靈活的Java安全框架。我們將從基礎(chǔ)概念開始,逐步講解Shiro的核心功能和應(yīng)用場景。Shiro簡介ApacheShiro是一個強(qiáng)大且靈活的Java安全框架,用于身份驗證、授權(quán)、會話管理和加密等。Shiro簡化了Java應(yīng)用的安全開發(fā),提供易于使用的API和配置選項。Shiro適用于各種應(yīng)用場景,從簡單的Web應(yīng)用到復(fù)雜的企業(yè)級系統(tǒng)。Shiro設(shè)計思想和工作流程1主體提交認(rèn)證請求用戶輸入用戶名和密碼,Shiro接收請求并進(jìn)行驗證。2SecurityManager進(jìn)行認(rèn)證SecurityManager調(diào)用Realm進(jìn)行身份驗證,檢查用戶憑據(jù)是否正確。3認(rèn)證成功,獲取主體信息如果驗證成功,Shiro會創(chuàng)建Subject對象,表示當(dāng)前用戶并存儲用戶信息。4授權(quán)檢查SecurityManager會根據(jù)Subject的權(quán)限信息,判斷用戶是否有訪問權(quán)限。5授權(quán)成功,執(zhí)行操作如果用戶有權(quán)限,Shiro會允許用戶執(zhí)行相應(yīng)的操作。Shiro核心概念Subject代表應(yīng)用程序中的當(dāng)前用戶,可以是用戶或其他主體。Subject是ShiroAPI的主要入口點。SecurityManagerShiro的核心,負(fù)責(zé)管理所有安全操作,如認(rèn)證、授權(quán)、會話管理。Realm負(fù)責(zé)認(rèn)證和授權(quán)的具體實現(xiàn),可以根據(jù)不同的數(shù)據(jù)源和驗證方式進(jìn)行自定義。Subject:主體Shiro安全主體Shiro中的用戶表示,代表著與應(yīng)用程序交互的任何用戶或?qū)嶓w。與Subject交互通過Subject可以進(jìn)行身份驗證、授權(quán)和會話管理操作。訪問權(quán)限控制Subject可以通過授權(quán)判斷是否具備訪問特定資源的權(quán)限。Principal:主體身份用戶標(biāo)識代表用戶在系統(tǒng)中的唯一標(biāo)識,例如用戶名或用戶ID。用戶角色定義用戶的權(quán)限和職責(zé),例如管理員、用戶或訪客。用戶權(quán)限指定用戶對系統(tǒng)資源的訪問控制,例如讀取、寫入或執(zhí)行操作。Realm:登錄驗證器身份驗證Realm負(fù)責(zé)驗證用戶身份,例如驗證用戶名和密碼是否匹配。授權(quán)策略Realm還定義了用戶權(quán)限,例如哪些用戶可以訪問哪些資源。數(shù)據(jù)源Realm可以從不同的數(shù)據(jù)源獲取用戶數(shù)據(jù),例如數(shù)據(jù)庫、LDAP或文件系統(tǒng)。SecurityManager:安全管理器核心控制Shiro應(yīng)用程序的核心,負(fù)責(zé)協(xié)調(diào)所有安全操作。統(tǒng)一管理管理認(rèn)證、授權(quán)、會話和緩存等功能。靈活配置允許通過配置文件或代碼進(jìn)行定制化配置。Authentication:認(rèn)證1驗證用戶身份驗證用戶是否擁有進(jìn)入系統(tǒng)或訪問資源的權(quán)限。2用戶名密碼驗證驗證用戶提供的用戶名和密碼是否與系統(tǒng)記錄匹配。3其他認(rèn)證方式例如,使用手機(jī)驗證碼、郵箱驗證等方式進(jìn)行身份驗證。Authorization:授權(quán)訪問控制控制用戶對系統(tǒng)資源的訪問權(quán)限.權(quán)限管理定義不同角色和用戶擁有的權(quán)限.安全策略根據(jù)預(yù)定義的安全策略進(jìn)行權(quán)限驗證.會話管理會話創(chuàng)建用戶首次訪問應(yīng)用程序時,Shiro會創(chuàng)建新的會話,并將其與用戶身份關(guān)聯(lián)。會話維護(hù)在用戶操作期間,Shiro會持續(xù)維護(hù)會話,跟蹤用戶活動和狀態(tài)。會話過期當(dāng)會話超過設(shè)定時間限制,或用戶長時間處于非活動狀態(tài)時,會話將自動過期。Shiro集成Servlet容器1Web應(yīng)用程序Shiro集成Servlet容器,為Web應(yīng)用程序提供安全保障2安全配置在web.xml中配置Shiro過濾器3用戶請求Shiro過濾器攔截用戶請求,進(jìn)行身份驗證和授權(quán)配置Shiro環(huán)境1Web.xml配置配置ShiroFilter攔截器2Shiro.ini配置定義Shiro核心配置3數(shù)據(jù)源配置配置Shiro數(shù)據(jù)存儲方式Web.xml配置過濾器在Web.xml中配置Shiro過濾器,攔截需要進(jìn)行安全控制的URL。監(jiān)聽器配置Shiro監(jiān)聽器,在應(yīng)用啟動和關(guān)閉時執(zhí)行相應(yīng)的操作,例如加載安全配置。Shiro.ini配置1基本配置指定安全管理器和環(huán)境,例如數(shù)據(jù)庫連接等。2Realm配置定義認(rèn)證和授權(quán)的驗證器,例如數(shù)據(jù)庫Realm。3緩存配置啟用緩存機(jī)制,提升Shiro性能,例如Ehcache緩存。Shiro數(shù)據(jù)源配置JDBCRealm使用JDBCRealm從數(shù)據(jù)庫中讀取用戶和權(quán)限信息。MongoDBRealm使用MongoDBRealm從MongoDB數(shù)據(jù)庫中讀取用戶和權(quán)限信息。Realm自定義實現(xiàn)自定義Realm實現(xiàn)Realm接口,自定義身份驗證和授權(quán)邏輯。身份驗證根據(jù)用戶名和密碼獲取用戶信息,并進(jìn)行密碼比對。授權(quán)根據(jù)用戶角色或權(quán)限,決定用戶是否可以訪問特定資源。數(shù)據(jù)源從數(shù)據(jù)庫、LDAP或其他數(shù)據(jù)源獲取用戶信息。登錄認(rèn)證流程1用戶輸入用戶名密碼2Subject調(diào)用Realm驗證3Realm根據(jù)用戶名查詢用戶信息4驗證用戶密碼是否匹配5認(rèn)證成功,返回認(rèn)證信息使用Subject進(jìn)行認(rèn)證獲取Subject通過SecurityManager獲取當(dāng)前Subject實例。登錄認(rèn)證調(diào)用Subject的login()方法進(jìn)行認(rèn)證,傳入AuthenticationToken。認(rèn)證結(jié)果根據(jù)認(rèn)證結(jié)果進(jìn)行后續(xù)操作,例如跳轉(zhuǎn)到首頁或提示錯誤信息。AuthenticationToken接口作用代表用戶登錄時提交的憑證信息,比如用戶名和密碼。主要方法getPrincipal():獲取用戶名getCredentials():獲取密碼Realm接口實現(xiàn)認(rèn)證Realm負(fù)責(zé)驗證用戶提供的身份信息,例如用戶名和密碼。授權(quán)Realm也負(fù)責(zé)授權(quán),確定用戶是否具有訪問特定資源的權(quán)限。數(shù)據(jù)源Realm可以從不同的數(shù)據(jù)源獲取用戶身份信息,例如數(shù)據(jù)庫、LDAP或其他目錄服務(wù)。授權(quán)方式基于角色的訪問控制將權(quán)限分配給角色,然后將角色分配給用戶。用戶通過角色間接地獲得權(quán)限?;谫Y源的訪問控制直接將權(quán)限分配給用戶,用戶擁有對特定資源的訪問權(quán)限?;诮巧脑L問控制角色定義將用戶分組到不同的角色,每個角色對應(yīng)不同的權(quán)限集合。權(quán)限分配將權(quán)限分配給不同的角色,例如管理員角色擁有所有權(quán)限,普通用戶擁有部分權(quán)限。角色繼承可以設(shè)置角色繼承關(guān)系,例如管理員角色繼承普通用戶的權(quán)限?;谫Y源的訪問控制權(quán)限控制基于資源的訪問控制,是對資源的訪問權(quán)限進(jìn)行控制。細(xì)粒度控制可以對不同資源設(shè)置不同的訪問權(quán)限,例如,某些用戶只能訪問特定的資源,而其他用戶則可以訪問所有資源。靈活配置Shiro提供了靈活的配置方式,可以輕松地對資源訪問權(quán)限進(jìn)行配置。會話管理會話創(chuàng)建用戶首次訪問應(yīng)用程序時,Shiro會創(chuàng)建一個新的會話,用于存儲用戶身份信息和相關(guān)數(shù)據(jù)。會話維護(hù)Shiro會自動跟蹤用戶會話,并處理會話超時、失效等情況。會話數(shù)據(jù)存儲Shiro可以將會話數(shù)據(jù)存儲在內(nèi)存中或數(shù)據(jù)庫中,根據(jù)實際需求進(jìn)行選擇。會話創(chuàng)建和維護(hù)1創(chuàng)建會話當(dāng)用戶第一次訪問應(yīng)用時,Shiro會自動創(chuàng)建一個會話2維護(hù)會話在用戶訪問應(yīng)用期間,Shiro會持續(xù)維護(hù)會話3銷毀會話當(dāng)用戶注銷或會話超時時,Shiro會銷毀會話會話超時和失效1自動超時默認(rèn)情況下,會話會根據(jù)配置的時間間隔自動失效,例如30分鐘。2手動失效程序可以通過代碼手動注銷會話,例如用戶手動退出或系統(tǒng)檢測到異常。3事件觸發(fā)某些事件可能會導(dǎo)致會話失效,例如用戶更改密碼或系統(tǒng)重啟。會話數(shù)據(jù)存儲Shiro默認(rèn)使用內(nèi)存存儲會話數(shù)據(jù)。適合小型應(yīng)用,但無法持久化會話數(shù)據(jù)。可將會話數(shù)據(jù)持久化到文件、數(shù)據(jù)庫或緩存服務(wù)器。Shiro與Spring整合1依賴注入使用Spring的依賴注入機(jī)制管理Shiro組件2配置集成通過Spring配置文件進(jìn)行Shiro配置3注解使用利用SpringAOP實現(xiàn)Shiro注解功能Shiro注解使用授權(quán)注解使用`@RequiresPermissions`注解控制方法訪問權(quán)限角色注解使用`@RequiresRoles`注解控制方法訪問角色訪客注解使用`@RequiresGuest`注解限制匿名用戶訪問用戶注解使用`@RequiresUser`注解限制已認(rèn)證用戶訪問Shiro緩存管理性能提升緩存可顯著提高系統(tǒng)性能,減少數(shù)據(jù)庫訪問
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2023年1月普通高等學(xué)校招生全國統(tǒng)一考試浙江英語試題含答案
- Module6練習(xí)(單元測試)英語四年級下冊-外研版(一起)(含答案)
- 知識產(chǎn)權(quán)利益平衡的探索與實踐
- 電子商務(wù)網(wǎng)站的網(wǎng)絡(luò)編程實現(xiàn)
- 北京市小區(qū)污水處理項目可行性研究報告
- 2025年玉米面條機(jī)項目投資可行性研究分析報告
- 2025年浙江杭州余杭中泰集體資產(chǎn)經(jīng)營有限公司招聘筆試參考題庫附帶答案詳解
- 2025年甘肅蘭州新區(qū)專精特新化工科技有限公司招聘筆試參考題庫附帶答案詳解
- 西安建筑科技大學(xué)華清學(xué)院《計算機(jī)輔助設(shè)計及應(yīng)用》2023-2024學(xué)年第二學(xué)期期末試卷
- 生孩子申請書
- 音樂考級-音程識別(基本樂科三級)考試備考題庫(附答案)
- 《行政組織學(xué)通論》配套教學(xué)課件
- 霍山石斛教學(xué)課件
- 物業(yè)服務(wù)投標(biāo)文件
- 《數(shù)值分析》配套教學(xué)課件
- 山西省衛(wèi)生院社區(qū)衛(wèi)生服務(wù)中心信息名單目錄
- 排污口要求規(guī)范化整治施工設(shè)計
- 二手閑置物品交易平臺研究報告
- DBJ∕T45-093-2019 混凝土超高泵送施工技術(shù)規(guī)程
- 蘇州地圖高清矢量可填充編輯PPT模板(精美)
- 氧化鋁生產(chǎn)工藝教學(xué)(拜耳法)PPT課件
評論
0/150
提交評論