資源描述:
《最新shiro入門學習.ppt》由會員上傳分享,免費在線閱讀,更多相關內容在教育資源-天天文庫。
1、Shiro入門學習手冊簡單的介紹,簡單的配置,簡單的擴展__________________________________________________一,shiro簡介ApacheShiro是一個強大而靈活的開源安全框架,它能夠干凈利落地處理身份認證,授權,企業(yè)會話管理和加密。以下是你可以用ApacheShiro所做的事情:?驗證用戶?對用戶執(zhí)行訪問控制,如:?判斷用戶是否擁有角色admin。判斷用戶是否擁有訪問的權限?在任何環(huán)境下使用SessionAPI。例如CS程序。?可以使用多個用戶數(shù)據(jù)源。例如一個是oracle用戶庫,另外一個是mysql用戶庫。?單點登
2、錄(SSO)功能。?“RememberMe”服務,類似購物車的功能,shiro官方建議開啟。__________________________________________________Shiro的4大部分——身份驗證,授權,會話管理和加密?Authentication:身份驗證,簡稱“登錄”。?Authorization:授權,給用戶分配角色或者權限資源?SessionManagement:用戶session管理器,可以讓CS程序也使用session來控制權限?Cryptography:把JDK中復雜的密碼加密方式進行封裝。__________________
3、________________________________除了以上功能,shiro還提供很多擴展?WebSupport:主要針對web應用提供一些常用功能。?Caching:緩存可以使應用程序運行更有效率。?Concurrency:多線程相關功能。?Testing:幫助我們進行測試相關功能?"RunAs":一個允許用戶假設為另一個用戶身份(如果允許)的功能,有時候在管理腳本很有用。?“RememberMe”:記住用戶身份,提供類似購物車功能。__________________________________________________Subject是與程序
4、進行交互的對象,可以是人也可以是服務或者其他,通常就理解為用戶。所有Subject實例都必須綁定到一個SecurityManager上。我們與一個Subject交互,運行時shiro會自動轉化為與SecurityManager交互的特定subject的交互。Subject:__________________________________________________SecurityManager是Shiro的核心,初始化時協(xié)調各個模塊運行。然而,一旦SecurityManager協(xié)調完畢,SecurityManager會被單獨留下,且我們只需要去操作Subjec
5、t即可,無需操作SecurityManager。但是我們得知道,當我們正與一個Subject進行交互時,實質上是SecurityManager在處理Subject安全操作。SecurityManager:Realms:Realms在Shiro中作為應用程序和安全數(shù)據(jù)之間的“橋梁”或“連接器”。他獲取安全數(shù)據(jù)來判斷subject是否能夠登錄,subject擁有什么權限。他有點類似DAO。在配置realms時,需要至少一個realm。而且Shiro提供了一些常用的Realms來連接數(shù)據(jù)源,如LDAP數(shù)據(jù)源的JndiLdapRealm,JDBC數(shù)據(jù)源的JdbcRealm,i
6、ni文件數(shù)據(jù)源的IniRealm,properties文件數(shù)據(jù)源的PropertiesRealm,等等。我們也可以插入自己的Realm實現(xiàn)來代表自定義的數(shù)據(jù)源。像其他組件一樣,Realms也是由SecurityManager控制__________________________________________________小結:__________________________________________________1.Subject(org.apache.shiro.subject.Subject):簡稱用戶2.SecurityManager(org.
7、apache.shiro.mgt.SecurityManager)如上所述,SecurityManager是shiro的核心,協(xié)調shiro的各個組件3.Authenticator(org.apache.shiro.authc.Authenticator):登錄控制注:AuthenticationStrategy(org.apache.shiro.authc.pam.AuthenticationStrategy)如果存在多個realm,則接口AuthenticationStrategy會確定什么樣算是登錄成功(例如,如果一個Realm成功,而其他的均