Shiro系列(3) - What is shiro?
來自專欄 BeJavaGod
什麼是shiro?
Shiro是apache的一個開源許可權管理的框架,它實現用戶身份認證,許可權授權、加密、會話管理等功能,組成了一個通用的安全認證框架
使用shiro來實現許可權管理,可以非常有效的提高團隊開發效率,從而降低開發成本以及維護成本。
shiro 的基本架構
Subject:主體,subject記錄了當前操作的用戶信息。我們對這個subject進行認證和授權。
SecurityManager:安全管理者,主體進行認證和授權都 是通過securityManager進行。是shiro的核心。
Authenticator:用於用戶登錄認證的,主體的認證是否通過都是由authenticator來做的。
Authorizer:授權鑒權,主體進行授權是否通過由authorizer來做的。
Session Manager:web應用中需要對session進行會話管理,那麼shiro本身也有session管理的方式,用sessionManager來做的。這個可以用來實現單點登錄sso。
SessionDao: 統一管理session,不論是分散式還是單應用都幫你做好了。比如對session的塞入一個用戶和刪除一個用戶,而這個是用的redis這樣的緩存的話,就要用到sessionDAO。
Cache Manager:緩存管理者,將用戶許可權信息緩存起來,這樣可以提高性能,不必頻繁地讀取資料庫,減少資料庫壓力。ehcache,redis等
realm:領域,範圍,可以理解為數據源,認證和授權的相關數據都是存在這裡的。
cryptography:密碼管理,提供各種類型的加密演算法,比如MD5等。
使用shiro所需要的jar包(基礎)
<shiro.version>1.3.2</shiro.version><!-- shiro --><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-core</artifactId><version>${shiro.version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-web</artifactId><version>${shiro.version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-spring</artifactId><version>${shiro.version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-ehcache</artifactId><version>${shiro.version}</version></dependency><dependency><groupId>org.apache.shiro</groupId><artifactId>shiro-quartz</artifactId><version>${shiro.version}</version></dependency><未完待續...>
具體內容同步更新文章以及視頻到微信公眾號,知乎,豆瓣,cnblogs,今日頭條以及新浪微博,以官網http://itzixi.com為主
推薦閱讀: