安全框架Shiro和Spring Security比較


Shiro

首先Shiro較之 Spring Security,Shiro在保持強大功能的同時,還在簡單性和靈活性方面擁有巨大優勢。

Shiro是一個強大而靈活的開源安全框架,能夠非常清晰的處理認證、授權、管理會話以及密碼加密。如下是它所具有的特點:

  1. 易於理解的 Java Security API;
  2. 簡單的身份認證(登錄),支持多種數據源(LDAP,JDBC,Kerberos,ActiveDirectory 等);
  3. 對角色的簡單的簽權(訪問控制),支持細粒度的簽權;
  4. 支持一級緩存,以提升應用程序的性能;
  5. 內置的基於 POJO 企業會話管理,適用於 Web 以及非 Web 的環境;
  6. 異構客戶端會話訪問;
  7. 非常簡單的加密 API;
  8. 不跟任何的框架或者容器捆綁,可以獨立運行。

 

Spring Security

除了不能脫離Spring,shiro的功能它都有。而且Spring Security對Oauth、OpenID也有支持,Shiro則需要自己手動實現。Spring Security的權限細粒度更高(筆者還未發現高在哪里)。

 

注:

OAuth在"客戶端"與"服務提供商"之間,設置了一個授權層(authorization layer)。"客戶端"不能直接登錄"服務提供商",只能登錄授權層,以此將用戶與客戶端區分開來。"客戶端"登錄授權層所用的令牌(token),與用戶的密碼不同。用戶可以在登錄的時候,指定授權層令牌的權限范圍和有效期。

"客戶端"登錄授權層以后,"服務提供商"根據令牌的權限范圍和有效期,向"客戶端"開放用戶儲存的資料。

 

OpenID 系統的第一部分是身份驗證,即如何通過 URI 來認證用戶身份。目前的網站都是依靠用戶名和密碼來登錄認證,這就意味着大家在每個網站都需要注冊用戶名和密碼,即便你使用的是同樣的密碼。如果使用 OpenID ,你的網站地址(URI)就是你的用戶名,而你的密碼安全的存儲在一個 OpenID 服務網站上(你可以自己建立一個 OpenID 服務網站,也可以選擇一個可信任的 OpenID 服務網站來完成注冊)。

與OpenID同屬性的身份識別服務商還有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用賬戶的應用最為廣泛。

 

綜述

個人認為現階段需求,權限的操作粒度能控制在路徑及按鈕上,數據粒度通過sql實現。Shrio簡單夠用。

至於OAuth,OpenID 站點間統一登錄功能,現租戶與各個產品間單點登錄已經通過cookies實現,所以Spring Security的這兩個功能可以不考慮。

SpringSide網站的權限也是用Shrio做的。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM