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通用帐户的应用最为普遍。

相关文章
相关标签/搜索