Shiro入門系列一


1.什麼是Shiro

                  shiro是Apach的一個開源框架,是一個權限管理的框架,實現用戶的認證,用戶的授權。

                  spring中也有一個一個權限框架,原名叫Acegi,但是它和Spring依賴的非常緊密,沒有shiro使用簡單。shiro不以來spring,shiro不僅可以實現web的權限管理,也可以實現C/S或者分佈式的權限管理,shiro是屬於輕量級框架,越來越多的企業開始使用shiro。

                  使用shiro做權限管理,可以提高開發效率,從而降低開發成本。

2.shiro的架構

                 


         subject:主體,主要指用戶或者程序。

subject 是shiro的一個接口,此接口主要包含了一些認證和授權的方法,而subject是用過Security Manage 安全管理器來進行認證和授權。

        Security Manage 安全管理器:主體進行認證和授權都是通過這個Security Manage來進行,它管理了認證器和授權器。

        Authentication :認證器,shiro內部其實是主體通過它來進行進行用戶認證,

       Authorizer:授權器,主體授權最終是通過這個Authorizer來進行授權的。

       Session Manage :管理Session,在一般的B/S應用中都是通過web容器來管理Session的,這個Session Manage 是shiro 提供的一個Session 管理機制,那麼Shiro爲什麼不用web容器的Session,非要自己定義一個Session Manage來進行Session管理,是因爲使用Shiro做權限的不僅只有web應用。與之對於的有一個Session DAO
的存在。

       Session DAO:通過Session DAO 管理Session數據,相當於在內存中寫數據,針對個性化的Session數據存儲需要使用到SessionDAO。

       Cache Manage:緩衝管理器,主要是用來對Session數據和授權數據進行數據緩衝。因爲在web應用中session就是存放在內存中的,同樣shiro的sesssion機制中也提供將Session緩衝,這就是Cache Manage,可以將其與其他緩衝框架進行整合,例如 Ehcache。

       Relam:相當於數據源,因爲進行認證或者授權都需要查數據庫,shiro都需要通過Realm存取認證和授權的相關數據。


       注意:Authentication 和 Authorizer 認證和授權都是接口,他們有很多方法,其中就包含調用Realm來進行授權和認證。最終認證和授權的邏輯都會在自定義的Realm中進行實現。


       cryptography: 密碼管理, shiro提供的一套 散列 加密/解密 的組件,比如MD5,SHA。MD5沒法解密,所以MD5屬於散列加密。

                


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