您好,登錄后才能下訂單哦!
spring security和shiro的異同
相同點
1、認證功能2、授權功能3、加密功能4、會話管理5、緩存支持
6、rememberMe功能
不同點
1、Spring Security 基于Spring 開發,項目若使用 Spring 作為基礎,配合 Spring Security 做權限更加方便,而 Shiro 需要和 Spring 進行整合開發;
2、Spring Security 功能比 Shiro 更加豐富些,例如安全維護方面;
3、Spring Security 社區資源相對比 Shiro 更加豐富;
Spring Security對Oauth、OpenID也有支持,Shiro則需要自己手動實現。而且Spring Security的權限細粒度更高
spring security 接口 RequestMatcher 用于匹配路徑,對路徑做特殊的請求,類似于shiro的
抽象類 PathMatchingFilter,但是 RequestMatcher 作用粒度更細
4、Shiro 的配置和使用比較簡單,Spring Security 上手復雜些;
5、Shiro 依賴性低,不需要任何框架和容器,可以獨立運行.Spring Security 依賴Spring容器;
6、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通用賬戶的應用最為廣泛。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。