亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

Shiro安全框架的主要組件及認證過程簡介

 更新時間:2023年08月15日 10:43:26   作者:愛吃?香菜  
這篇文章主要介紹了Shiro安全框架的主要組件及認證過程簡介,Shiro?是一個強大靈活的開源安全框架,可以完全處理身份驗證、授權、加密和會話管理,本文就來介紹一下此框架的核心組成,需要的朋友可以參考下

什么是Shiro

Shiro 是一個強大靈活的開源安全框架,可以完全處理身份驗證、授權、加密和會話管理

Shiro的核心功能包括:

  • 身份驗證(Authentication):驗證用戶的身份,確保用戶是合法的。
  • 授權(Authorization):控制用戶對系統(tǒng)資源的訪問權限,限制用戶只能訪問其被授權的部分。
  • 會話管理(Session Management):管理用戶會話,跟蹤用戶的登錄狀態(tài)和活動,并提供會話的持久化支持。
  • 密碼加密(Cryptography):提供密碼加密和解密的支持,確保用戶的密碼在存儲和傳輸過程中的安全性。
  • Web支持:提供與Web應用程序集成的支持,包括集成主流Web框架(如Spring、Struts)和處理Web請求的過濾器等。

Shiro主要組件及相互作用:

  1. Subject(主體):
    • Subject 表示當前正在與應用程序交互的用戶??梢允且粋€人、設備或其他系統(tǒng)實體。
    • Subject 封裝了用戶的身份和相關的安全操作,如登錄、注銷、權限檢查等。
  2. SecurityManager(安全管理器):
    • SecurityManager 是 Shiro 的核心組件,負責協(xié)調(diào)和管理所有的安全操作。
    • SecurityManager 管理一個或多個 Realms,用于進行身份驗證和授權。
  3. Realm(域):
    • Realm 是連接 Shiro 和安全數(shù)據(jù)源(如數(shù)據(jù)庫、LDAP 等)的橋梁。
    • Realm 負責從數(shù)據(jù)源中獲取用戶的身份和權限信息,并提供給 SecurityManager 進行驗證和授權操作。
  4. Authenticator(身份驗證器):
    • Authenticator 負責對用戶進行身份驗證。
    • Authenticator 使用 Realm 獲取用戶的身份信息,并將其與用戶提供的憑據(jù)進行比較,以確定用戶是否合法。
  5. Authorizer(授權器):
    • Authorizer 負責對用戶進行授權,確定用戶是否有權訪問特定資源。
    • Authorizer 使用 Realm 獲取用戶的角色和權限信息,并與應用程序定義的角色和權限進行匹配,以決定用戶是否被授權訪問資源。
  6. SessionManager(會話管理器):
    • SessionManager 負責管理用戶的會話。
    • SessionManager 創(chuàng)建、維護和關閉用戶會話,并提供會話的持久化支持。
  7. SessionDAO(會話數(shù)據(jù)訪問對象):
    • SessionDAO 是用于會話數(shù)據(jù)的讀取和存儲的接口。
    • SessionDAO 與數(shù)據(jù)庫或其他存儲介質(zhì)交互,將會話數(shù)據(jù)持久化或從持久化存儲中讀取會話數(shù)據(jù)。

這些組件相互協(xié)作,形成了 Shiro 的安全框架。Subject 通過 SecurityManager 進行身份驗證和授權操作,SecurityManager 使用 Realm 獲取用戶的身份和權限信息。而我們需要實現(xiàn)Realms的Authentication 和 Authorization。Authenticator 負責身份驗證,Authorizer 負責授權,SessionManager 負責會話管理。SessionDAO 則提供會話數(shù)據(jù)的讀取和存儲支持。通過這

種相互作用,Shiro 提供了完善的安全功能,保護應用程序的安全性。

Shiro 認證過程:

  1. 用戶提交身份信息:用戶在應用程序的登錄頁面輸入用戶名和密碼,并提交身份信息。
  2. Subject 提交身份信息:應用程序接收到用戶提交的身份信息后,將其封裝為 Subject 對象。
  3. SecurityManager 開始認證:SecurityManager 是 Shiro 的核心組件,負責協(xié)調(diào)和管理所有的安全操作。它接收到 Subject 提交的身份信息后,開始進行身份驗證。
  4. SecurityManager 調(diào)用 Authenticator 進行身份驗證:SecurityManager 會調(diào)用配置好的 Authenticator 進行身份驗證。
  5. Authenticator 獲取身份信息:Authenticator 使用 Realm(可能是單個 Realm 或多個 Realm 的組合)從數(shù)據(jù)源中獲取用戶的身份信息。
  6. Realm 獲取用戶身份信息:Realm 是連接 Shiro 和安全數(shù)據(jù)源的橋梁。它根據(jù)配置的方式(如數(shù)據(jù)庫、LDAP 等)獲取用戶的身份信息。
  7. Authenticator 進行身份匹配:Authenticator 將用戶提交的身份信息和 Realm 獲取到的用戶身份信息進行匹配,以確定用戶是否合法。
  8. 認證結果返回給 SecurityManager:Authenticator 將認證結果(通過或失敗)返回給 SecurityManager。
  9. SecurityManager 處理認證結果:SecurityManager 根據(jù)認證結果,如果認證成功,則將用戶標記為已認證狀態(tài),并將用戶的身份信息存儲在 Subject 中供以后使用。如果認證失敗,則拋出相應的異常。
  10. 認證結果返回給應用程序:SecurityManager 將認證結果返回給應用程序,應用程序可以根據(jù)認證結果決定如何處理。

Shiro 授權過程:

  1. 用戶發(fā)起訪問請求: 用戶在應用程序中發(fā)起對某個資源的訪問請求,例如訪問一個特定的 URL 或執(zhí)行某個操作。
  2. Subject 發(fā)起授權請求: Subject 對象封裝了當前用戶的身份信息和相關的安全操作。當用戶發(fā)起訪問請求時,Subject 對象會將授權請求發(fā)送給 SecurityManager。
  3. SecurityManager 開始授權: SecurityManager 是 Shiro 的核心組件,負責協(xié)調(diào)和管理所有的安全操作。它接收到 Subject 的授權請求后,開始進行授權處理。
  4. SecurityManager 調(diào)用 Authorizer 進行授權: SecurityManager 會調(diào)用配置好的 Authorizer 進行授權操作。
  5. Authorizer 獲取用戶角色和權限信息: Authorizer 使用 Realm(可能是單個 Realm 或多個 Realm 的組合)從數(shù)據(jù)源中獲取當前用戶的角色和權限信息。
  6. Authorizer 進行角色和權限匹配: Authorizer 將用戶的角色和權限信息與應用程序定義的角色和權限進行匹配,以確定用戶是否有權訪問請求的資源。
  7. 授權結果返回給 SecurityManager: Authorizer 將授權結果(允許訪問或拒絕訪問)返回給 SecurityManager。
  8. SecurityManager 處理授權結果: SecurityManager 根據(jù)授權結果,如果授權成功,則允許用戶訪問請求的資源。如果授權失敗,則拋出相應的異?;虿扇∑渌幚泶胧?/li>
  9. 授權結果返回給應用程序: SecurityManager 將授權結果返回給應用程序,應用程序可以根據(jù)授權結果決定如何處理用戶的訪問請求。

到此這篇關于Shiro安全框架的主要組件及認證過程簡介的文章就介紹到這了,更多相關Shiro安全框架內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!

相關文章

  • Spring中@Async注解執(zhí)行異步任務的方法

    Spring中@Async注解執(zhí)行異步任務的方法

    在業(yè)務處理中,有些業(yè)務使用異步的方式更為合理,這篇文章主要介紹了Spring中@Async注解執(zhí)行異步任務的方法,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2018-06-06
  • Java編程用兩個棧實現(xiàn)隊列代碼分享

    Java編程用兩個棧實現(xiàn)隊列代碼分享

    這篇文章主要介紹了Java編程用兩個棧實現(xiàn)隊列代碼分享,具有一定參考價值,這里給大家分享下,供需要的朋友了解。
    2017-10-10
  • SpringBoot中@Import注解如何正確使用

    SpringBoot中@Import注解如何正確使用

    這篇文章主要介紹了SpringBoot中@Import注解的使用方式,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-06-06
  • Java函數(shù)式編程(十一):遍歷目錄

    Java函數(shù)式編程(十一):遍歷目錄

    這篇文章主要介紹了Java函數(shù)式編程(十一):遍歷目錄,本文是系列文章的第11篇,其它文章請參閱本文底部的相關文章,需要的朋友可以參考下
    2014-09-09
  • 淺談Java自定義注解相關知識

    淺談Java自定義注解相關知識

    今天帶大家來學習Java注解的相關知識,文中對自定義注解作了非常詳細的介紹,對正在學習Java的小伙伴們很有幫助,需要的朋友可以參考下
    2021-05-05
  • spring,mybatis事務管理配置與@Transactional注解使用詳解

    spring,mybatis事務管理配置與@Transactional注解使用詳解

    這篇文章主要介紹了spring,mybatis事務管理配置與@Transactional注解使用,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-07-07
  • Spring Aware標記接口使用案例解析

    Spring Aware標記接口使用案例解析

    這篇文章主要介紹了Spring Aware標記接口使用案例,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下
    2020-04-04
  • Java的List集合中泛型使用詳解

    Java的List集合中泛型使用詳解

    這篇文章主要介紹了Java的List集合中泛型使用詳解,泛型類,如果沒有指定具體的數(shù)據(jù)類型,此時,操作類型是Object,泛型的類型參數(shù)只能是類類型,不能是基本數(shù)據(jù)類型,需要的朋友可以參考下
    2023-12-12
  • hashset去除重復值原理實例解析

    hashset去除重復值原理實例解析

    這篇文章主要介紹了hashset去除重復值原理實例解析,具有一定借鑒價值,需要的朋友可以參考下。
    2017-12-12
  • java 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法

    java 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法

    下面小編就為大家?guī)硪黄猨ava 結合jQuery實現(xiàn)跨域名獲取數(shù)據(jù)的方法。小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2016-05-05

最新評論