spring security和shiro的異同

spring security和shiro的異同web

相同點算法

一、認證功能二、受權功能三、加密功能四、會話管理五、緩存支持spring

六、rememberMe功能apache

不一樣點緩存

一、Spring Security 基於Spring 開發,項目若使用 Spring 做爲基礎,配合 Spring Security 作權限更加方便,而 Shiro 須要和 Spring 進行整合開發;安全

二、Spring Security 功能比 Shiro 更加豐富些,例如安全維護方面;框架

三、Spring Security 社區資源相對比 Shiro 更加豐富;ide

Spring Security對Oauth、OpenID也有支持,Shiro則須要本身手動實現。並且Spring Security的權限細粒度更高網站

spring security 接口 RequestMatcher 用於匹配路徑,對路徑作特殊的請求,相似於shiro的加密

抽象類 PathMatchingFilter,可是 RequestMatcher 做用粒度更細

 

四、Shiro 的配置和使用比較簡單,Spring Security 上手複雜些;

五、Shiro 依賴性低,不須要任何框架和容器,能夠獨立運行.Spring Security 依賴Spring容器;

六、shiro 不單單能夠使用在web中,還支持非web項目它能夠工做在任何應用環境中。在集羣會話時Shiro最重要的一個好處或許就是它的會話是獨立於容器的。

apache shiro的話,簡單,易用,功能也強大,spring官網就是用的shiro,可見shiro的強大。

 

spring security 和 shiro 對加密都提供了各類各樣的支持 例如 BCryptPasswordEncoder 採用 SHA-256 + 隨機鹽 + 祕鑰 對密碼進行加密。shrio 的 SimpleHash 提供散列算法的支持,生成數據的摘要信息.

 

shiro 的 AuthorizingRealm 的 doGetAuthorizationInfo方法 與 doGetAuthenticationInfo 一個 是定義 獲取 用戶權限信息 的方法,一 個 是 定義用戶身份認證及獲取用戶身份的方法,

spring security 也有 資源 角色 受權器 FilterInvocationSecurityMetadataSource,定義資源url 與 角色權限的關係 , 決策 管理器 AccessDecisionManager 定義權限知足的規則

 

注:

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

「客戶端」登陸受權層之後,」服務提供商」根據令牌的權限範圍和有效期,向」客戶端」開放用戶儲存的資料。

 

OpenID 系統的第一部分是身份驗證,即如何經過 URI 來認證用戶身份。目前的網站都是依靠用戶名和密碼來登陸認證,這就意味着你們在每一個網站都須要註冊用戶名和密碼,即使你使用的是一樣的密碼。若是使用 OpenID ,你的網站地址(URI)就是你的用戶名,而你的密碼安全的存儲在一個 OpenID 服務網站上(你能夠本身創建一個 OpenID 服務網站,也能夠選擇一個可信任的 OpenID 服務網站來完成註冊)。

OpenID同屬性的身份識別服務商還有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用帳戶的應用最爲普遍。

相關文章
相關標籤/搜索