Shiro框架學習筆記(一)shiro簡介以及工作流程

不知道大家在做java web項目的時候有沒有想過這個,雖然我們一般做項目時都會選擇讓用戶先註冊登錄之後才能看到我們項目的具體內容,在知道了內部頁面的路徑之後我們能夠在未登錄的情況下,直接在網頁中輸入我們內部頁面的絕對路徑訪問到呢?
答案當然是可以的,所以這時候就牽扯出了一些問題,我們怎麼才能對用戶進行身份驗證,這樣才能確保用戶必須登錄過後才能瀏覽相關的界面。這時候就有兩種方案,一種是直接通過過濾器實現,在每一用戶的請求操作時都檢查一遍用戶用戶是否已經登錄,否則就禁止訪問,第二種就是我要說的shiro框架。官方文檔上是這樣介紹shiro的

shiro

  1. Apache Shiro 是 Java 的⼀個安全(權限)框架。Shiro 可以輕鬆的完成:身份認證、授權、加密、會話管理等功能

  2. Shiro 可以⾮常容易的開發出⾜夠好的應⽤,其不僅可以⽤在JavaSE 環境,也可以⽤在 JavaEE 環境。功能強⼤且易⽤,可以快速輕鬆地保護任何應⽤程序 ( 從最⼩的移動應⽤程序到最⼤的Web和企業應⽤程序。)

  3. ⽅便的與Web 集成和搭建緩存。

簡單來說就是對用戶登錄是進行檢測並且一直持續到會話結束,其次就是對用戶的角色以及權限進行檢測,檢查該用戶是否具有相應的權限或者是是否具備相應的角色身份。其次就是對用戶的一些私密信息進行加密處理。這就是shiro大致所做的工作。

接下來,介紹一下shiro的工作流程。
shiro工作流程
首先shiro工作流程中又三個重要的組件,分別是Subject,SecurityManager,以及Realm。
先來介紹Subject,即爲主體也就相當於目前操作系統的用戶直觀來說就相當於目前登錄的用戶。這裏Subject主要是用來檢測用戶的登錄,登錄完之後就主要將工作交給SecurityManager來完成
其次就是SecurityManager主要來檢測目前的用戶Subject的一系列的安全操作,比如說當前用戶所具備的權限,以及該用戶的角色是哪一層級的,在用戶執行一系列操作的時候進行授權,避免越權的操作。
之後就是Realm,他主要就是負責與數據庫交互,就比如說SecurityManager來檢測用戶的權限是,就需要Realm從數據庫中取出該用戶的權限以及角色信息,之後才能方便SecurityManager來進行授權的操作。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章