web应用安全框架选型:Spring Security与Apache Shiro

file

1、 SpringSecurity 框架简介

官网:https://projects.spring.io/spring-security/java

源代码: https://github.com/spring-projects/spring-security/git

Spring Security 是强大的,且容易定制的,基于Spring开发的实现认证登陆与资源受权的应用安全框架。github

SpringSecurity 的核心功能:web

  • Authentication:认证,用户登录的验证(解决你是谁的问题)
  • Authorization:受权,受权系统资源的访问权限(解决你能干什么的问题)
  • 安全防御,防止跨站请求,session 攻击等

2、比较一下shiro与Spring Security

目前在java web应用安全框架中,与Spring Security造成直接竞争的就是shiro,两者在核心功能上几乎差很少,但从使用的角度各有优缺点。笔者认为:没有最好的,只有最合适的。spring

2.1 用户量

从使用状况上看,两者都在逐步提升使用量。shiro的使用量一直高于spring security. apache

2.2.使用的方便程度

一般来讲,shiro入门更加容易,使用起来也很是简单,这也是形成shiro的使用量一直高于Spring Security的主要缘由。可是从笔者的角度来看,两者其实都简单,我说说个人理由:安全

  • 在没有Spring Boot以前,Spring Security的大部分配置要经过XML实现,配置仍是仍是很是复杂的。可是有了 Spring Boot以后,这一状况已经获得显著改善。
  • Spring Security之因此看上去比shiro更复杂,实际上是由于它引入了一些不经常使用的概念与规则。你们应该都知道2/8法则,这在Spring Security里面体现的特别明显,若是你只学Spring Security最重要的那20%,这20%的复杂度和shiro基本是一致的。也就是说,不重要的那80%,偏偏是Spring Security比shiro的“复杂度”。

也就是说,若是有人能帮你把Spring Security最重要的那20%摘出来,两者的入门门槛、复杂度实际上是差不太多的。springboot

2.3.社区支持

Spring Security依托于Spring庞大的社区支持,这点自没必要多说。shiro属于apache社区,由于它的普遍使用,文档也很是的全面。两者从社区支持来看,几乎不相上下。网络

可是从社区发展的角度看,Spring Security明显更占优点,随着Spring Cloud、Spring Boot、Spring Social的长足进步,这种优点会愈来愈大。由于Spring Security毕竟是Spring的亲儿子,Spring Security将来在于Spring系列框架集成的时候必定会有更好的融合性,前瞻性、兼容性!这也是为何咱们要学Spring Security的主要缘由!session

2.4.功能丰富性

Spring Security由于它的复杂,因此从功能的丰富性的角度更胜一筹。其中比较典型的如:

  • Spring Security默认含有对OAuth2.0的支持,与Spring Social一块儿使用完成社交媒体登陆也比较方便。shiro在这方面只能靠本身写代码实现。
  • 还有一种广泛说法:Spring Security在网络安全的方面下的功夫更多,可是笔者并未有很是直接的感觉,有可能出现安全问题的时候才会感到不够安全的痛。

3、总结

若是你只是想实现一个简单的web应用,shiro更加的轻量级,学习成本也更低。若是您正在开发一个分布式的、微服务的、或者与Spring Cloud系列框架深度集成的项目,笔者仍是建议您使用Spring Security。

期待您的关注

相关文章
相关标签/搜索