shiro簡介

shiro介紹:

        Apache Shiro 是ASF旗下的一款開源軟件,提供了一個強大而靈活的安全框架。可爲任何應用提供安全保障。

        Apache Shiro提供了認證、授權、加密和會話管理功能,將複雜的問題隱藏起來,提供清晰直觀的API使開發者可以很輕鬆地開發自己的程序安全代碼。並且在實現此目標時無須依賴第三方的框架、容器或服務,當然也能做到與這些環境的整合,使其在任何環境下都可拿來使用。

        Shiro將目標集中於Shiro開發團隊所稱的“四大安全基石”-認證(Authentication)、授權(Authorization)、會話管理(Session Management)和加密(Cryptography):

           認證(Authentication):用戶身份識別。有時可看作爲“登錄(login)”,它是用戶證明自己是誰的一個行爲。

          授權(Authorization):訪問控制過程,好比決定“認證(who)”可以訪問“什麼(what)”.

          會話管理(SessionManagement):管理用戶的會話(sessions),甚至在沒有WEB或EJB容器的環境中。管 理用戶與時間相關的狀態。

          加密(Cryptography):使用加密算法保護數據更加安全,防止數據被偷窺。


shiro構成:

1.1  Subject

       Subject即主體,外部應用與subject進行交互,subject記錄了當前操作用戶,將用戶的概念理解爲當前操作的主體,可能是一個通過瀏覽器請求的用戶,也可能是一個運行的程序。        

Subjectshiro中是一個接口,接口中定義了很多認證授權相關的方法,外部程序通過subject進行認證授,而subject是通過SecurityManager安全管理器進行認證授權

1.2 SecurityManager

securityManager即安全管理器,對全部的subject進行安全管理,它是shiro的核心,負責對所有的subject進行安全管理。通過SecurityManager可以完成subject的認證、授權等,實質上SecurityManager是通過Authenticator進行認證,通過Authorizer進行授權,通過SessionManager進行會話管理等。

SecurityManager是一個接口,繼承了Authenticator, Authorizer, SessionManager這三個接口。

1.3 Authenticator

authenticator即認證器,對用戶身份進行認證,Authenticator是一個接口,shiro提供ModularRealmAuthenticator實現類,通過ModularRealmAuthenticator基本上可以滿足大多數需求,也可以自定義認證器。

1.4 Authorizer

authorizer即授權器,用戶通過認證器認證通過,在訪問功能時需要通過授權器判斷用戶是否有此功能的操作權限。

1.5 realm

realm即領域,相當於datasource數據源,securityManager進行安全認證需要通過Realm獲取用戶權限數據,比如:如果用戶身份數據在數據庫那麼realm就需要從數據庫獲取用戶身份信息。

注意:不要把realm理解成只是從數據源取數據,在realm中還有認證授權校驗的相關的代碼。

1.6 sessionManager

sessionManager即會話管理,shiro框架定義了一套會話管理,它不依賴web容器的session,所以shiro可以使用在非web應用上,也可以將分佈式應用的會話集中在一點管理,此特性可使它實現單點登錄。

1.7 sessionDao

sessionDao即會dao,是對session會話操作的一套接口,比如要將session存儲到數據庫,可以通過jdbc將會話存儲到數據庫。

1.8 cacheManager

cacheManager即緩存管理,將用戶權限數據存儲在緩存,這樣可以提高性能

1.9 Cryptography

Cryptography即密碼管理,shiro提供了一套加密/解密的組件,方便開發。比如提供常用的散列、加/解密等功能


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