简要概述对spring security与shrio的认识与区别

最近看到项目中使用到了shrio和spring security,这两者都是对权限的控制与管理,为了了解两者的区别,查阅了相关资料,进行了一个整理:

Apache shrio是Java的一个安全框架,但是shrio框架的一大特点强大而灵活并且简单,容易使用,相比spring security框架没有那么晦涩难懂,它能清晰的处理认证,授权,管理会话以及密码加密。但是相比于spring security,可能没有spring security做的相关功能强大,所以具体使用哪个框架主要看你本身的项目是都需要那些复杂功能一些相关的东西。但因为我项目中运用到了spring security,所以后面的博文可能会对spring security做一下详细的了解以及介绍总结。

以下是shrio所具有的一些特点:

  1. 易于理解的 Java Security API;
  2. 简单的身份认证(登录),支持多种数据源(LDAP,JDBC,Kerberos,ActiveDirectory 等);
  3. 对角色的简单的签权(访问控制),支持细粒度的签权;
  4. 支持一级缓存,以提升应用程序的性能;
  5. 内置的基于 POJO 企业会话管理,适用于 Web 以及非 Web 的环境;
  6. 异构客户端会话访问;
  7. 非常简单的加密 API;
  8. 不跟任何的框架或者容器捆绑,可以独立运行

spring security

         spring security对于spring的结合较好,如果项目用的是springmvc使用起来挺方便,如果项目没有使用spring,先暂时不考虑了,shrio因为是Apache下的一个项目,不跟任何容器和框架绑定,可以独立运行,所以相对来说简便灵活。但对于shiro所具有的一系列功能,spring security都有,包括认证,验证,授权等等,目前spring security较好的解决了功能级权限管理的问题,并且spring security对Oauth、OpenID也有支持,Shiro则需要自己手动实现,作者自己还整理了一些资料,说spring security的权限细粒度更高,当然,关于这里,作者还没有深入去了解,这里主要是对shrio和spring security做一个大概总结,并且对spring security有一个大概的认识。

      转载:  以下是对Oauth以及OpenId的一些认知:

                Oauth:在"客户端"与"服务提供商"之间,设置了一个授权层(authorization layer)。"客户端"不能直接登录"服务提供商",只能登录授权层,以此将用户与客户端区分开来。"客户端"登录授权层所用的令牌(token),与用户的密码不同。用户可以在登录的时候,指定授权层令牌的权限范围和有效期。

                 "客户端"登录授权层以后,"服务提供商"根据令牌的权限范围和有效期,向"客户端"开放用户储存的资料。

                 OpenId: 系统的第一部分是身份验证,即如何通过 URI 来认证用户身份。目前的网站都是依靠用户名和密码来登录认证,这就意味着大家在每个网站都需要注册用户名和密码,即便你使用的是同样的密码。如果使用 OpenID ,你的网站地址(URI)就是你的用户名,而你的密码安全的存储在一个 OpenID 服务网站上(你可以自己建立一个 OpenID 服务网站,也可以选择一个可信任的 OpenID 服务网站来完成注册)。

与OpenID同属性的身份识别服务商还有ⅥeID,ClaimID,CardSpace,Rapleaf,Trufina ID Card等,其中ⅥeID通用账户的应用最为广泛。

原文地址:https://www.cnblogs.com/jbml-154312/p/7298176.html