shiro入門知識介紹

xz43發表於2016-05-18
今天我們先來介紹shiro的基本概念


一、shiro功能介紹

  1. Authentication:身份認證/登入
  2. Authorization:驗證許可權,即,驗證某個人是否有做某件事的許可權。
  3. Session Management:會話管理。管理使用者特定的會話,支援web,非web,ejb。
  4. Cryptography: 加密,保證資料安全。
  5. 其他特性。
  • Web Support:web支援,更容易繼承web應用。
  • Caching:快取
  • Concurrency :多執行緒應用的併發驗證,即如在一個執行緒中開啟另一個執行緒,能把許可權自動傳播過去;
  • Testing:提供測試支援。
  • Run As:允許一個使用者假裝為另一個使用者(如果他們允許)的身份進行訪問;
  • Remember Me:記住我,即記住登入狀態,一次登入後,下次再來的話不用登入了 。

二、架構介紹

從最頂層看shiro,有三個最基本概念 : Subject, SecurityManager 和Realms。 


Subject:主體。抽象概念,代表了當前“使用者”,這個使用者不一定是一個具體的人,與當前應用互動的任何東西都是Subject,如網路爬蟲,機器人等。

SecurityManager:安全管理器。shiro的核心, 所有與安全有關的操作都會與SecurityManager互動;且它管理著所有Subject。

Realms: shiro和應用程式的許可權資料之間的橋樑,為shiro提供安全資料。 SecurityManager要驗證使用者身份,那麼它需要從Realm獲取相應的使用者進行比較以確定使用者身份是否合法;也需要從Realm得到使用者相應的角色/許可權進行驗證使用者是否能進行操作;可以把Realm看成DataSource,即安全資料來源。


Shiro的架構,如下圖所示:


Subject (org.apache.shiro.subject.Subject) 
    與應用互動的主體,例如使用者,第三方應用等。
SecurityManager (org.apache.shiro.mgt.SecurityManager)
    SecurityManager是shiro的核心,負責整合所有的元件,使他們能夠方便快捷完成某項功能。例如:身份驗證,許可權驗證等。
Authenticator (org.apache.shiro.authc.Authenticator)
     認證器,負責主體認證的,這是一個擴充套件點,如果使用者覺得Shiro預設的不好,可以自定義實現;其需要認證策略(Authentication Strategy),即什麼情況下算使用者認證通過了。
Authorizer (org.apache.shiro.authz.Authorizer)
      來決定主體是否有許可權進行相應的操作;即控制著使用者能訪問應用中的哪些功能。
SessionManager (org.apache.shiro.session.mgt.SessionManager) 
     會話管理。
SessionDAO (org.apache.shiro.session.mgt.eis.SessionDAO) 
  資料訪問物件,對session進行CRUD。
CacheManager (org.apache.shiro.cache.CacheManager)
     快取管理器。建立和管理快取,為 authentication, authorization 和 session management 提供快取資料,避免直接訪問資料庫,提高效率。
Cryptography (org.apache.shiro.crypto.*)
     密碼模組,提供加密元件。
Realms (org.apache.shiro.realm.Realm)
      可以有1個或多個Realm,可以認為是安全實體資料來源,即用於獲取安全實體的;可以是JDBC實現,也可以是LDAP實現,或者記憶體實現等等;由使用者提 供;注意:Shiro不知道你的使用者/許可權儲存在哪及以何種格式儲存;所以我們一般在應用中都需要實現自己的Realm。

總結
          基礎知識巨集觀瞭解,掌握全域性!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/9399028/viewspace-2102777/,如需轉載,請註明出處,否則將追究法律責任。

相關文章