shiro主要是用來對使用者的登入、許可權進行管理,可以實現使用者的認證授權。
shiro和spring security的區別:
shiro使用簡單,輕量級,可以在b/s、c/s系統中使用,不依賴spring
spring security(原名是acegi),僅僅是乙個許可權框架,和spring依賴很嚴重,不如shiro好用
使用shiro可以提高開發效率,降低成本,而且使用很簡單
shiro流程如下:
shiro十分重要的三個東西:subject、securitymanager、realm
下面我就對這乙個流程做乙個簡單的解釋
1、subject-----首先,當乙個請求傳送過來,到達subject,這裡的subject可以把它當做乙個使用者(這裡不僅僅是使用者,也有可能是對這個伺服器傳送請求的各種程式,說成使用者是為了方便理解。說白了就是進行互動的東西)。
2、securitymanager-----然後,我們獲取到了subject,此時需要對這個訪問的使用者進行身份驗證、許可權驗證等一系列判斷,這時就需要交給securitymanager來幫我們完成,securitymanager又叫做安全管理器,主要是為了對使用者進行認證、授權之類。這個裡面又分為好幾個小部分):
我用紅框框,框起來的就是securitymanager中最重要的幾個部分
authenticator: 身份認證/登入。也就是登入時判斷你賬號密碼輸對了沒有
authorizer: 授權。當使用者登入完成,需要對該使用者賦予許可權,也就是能做什麼、不能做什麼。
sessionmanager:會話管理。當乙個使用者登入完成,並授權後,該使用者的一切資訊都用這個會話管理儲存,一直到該使用者退出登入,這樣就不用每次去查詢該使用者的許可權了,提示的系統執行效率。
sessiondao:它用於會話的crud,也可以用來儲存session。相當於session的持久化操作。
cachemanager:快取。可以包含許可權認證的快取、使用者及許可權資訊的快取等,也可以做session快取。
3、realm-----這個屬性相當於域。所謂的域就是可以從裡面獲取到任何資料,相當於乙個資料來源。shiro可以從這裡面獲取到安全資料(如使用者、角色、許可權),就是說securitymanager要驗證使用者身份,那麼它需要從realm獲取相應的使用者進行比較以確定使用者身份是否合法;也需要從realm得到使用者相應的角色/許可權進行驗證使用者是否能進行操作。
shiro的初步認識
1.首先自建乙個demo上上手 使用者登入認證 accountrealm accountrealm new accountrealm before public void adduser test public void testauthentication 2.接著來乙個使用者角色認證 accou...
類的初步認識
c 一直被稱為是比c更高階的語言,為什麼呢?恐怕就是因為具有物件導向的設計思想,它 將萬千變化 錯綜複雜的外部環境有組織的 有規律的整合在了一起。從規律上,我們引入 了類的概念,將原本複雜的外部環境按照一定的規律和相似點,劃分為不同的類,常言道 物以類聚,鳥易群分嘛。我們在將類有機的進行區別和管理 ...
程序的初步認識
程序是作業系統結構的基礎 是乙個正在執行的程式 計算機中正在執行的程式例項 可以分配給處理器並由處理器執行的乙個實體 由單一順序的執行顯示,乙個當前狀態和一組相關的系統資源所描述的活動單元。在程式的實現中,程序使用大有裨益。1.程序的建立函式 fork vfork 前者父子程序執行順序不定。2.在子...