当前位置: 移动技术网 > IT编程>开发语言>Java > web应用安全框架选型:Spring Security与Apache Shiro

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

2019年11月14日  | 移动技术网IT编程  | 我要评论

湖北通城县,陕西省政府采购网,宁德政府采购网

file

一、 springsecurity 框架简介

官网:

源代码:

spring security 是强大的,且容易定制的,基于spring开发的实现认证登录与资源授权的应用安全框架。

springsecurity 的核心功能:

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

二、比较一下shiro与spring security

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

2.1 用户量

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

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%摘出来,二者的入门门槛、复杂度其实是差不太多的。

2.3.社区支持

spring security依托于spring庞大的社区支持,这点自不必多说。shiro属于apache社区,因为它的广泛使用,文档也非常的全面。二者从社区支持来看,几乎不相上下。

但是从社区发展的角度看,spring security明显更占优势,随着spring cloud、spring boot、spring social的长足进步,这种优势会越来越大。因为spring security毕竟是spring的亲儿子,spring security未来在于spring系列框架集成的时候一定会有更好的融合性,前瞻性、兼容性!这也是为什么我们要学spring security的主要原因!

2.4.功能丰富性

spring security因为它的复杂,所以从功能的丰富性的角度更胜一筹。其中比较典型的如:

  • spring security默认含有对oauth2.0的支持,与spring social一起使用完成社交媒体登录也比较方便。shiro在这方面只能靠自己写代码实现。
  • 还有一种普遍说法:spring security在网络安全的方面下的功夫更多,但是笔者并未有非常直接的感受,有可能出现安全问题的时候才会感到不够安全的痛。

三、总结

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

期待您的关注

  • 博主最近新写了一本书:
  • 本文转载注明出处(必须带连接,不能只转文字):。

如对本文有疑问,请在下面进行留言讨论,广大热心网友会与你互动!! 点击进行留言回复

相关文章:

验证码:
移动技术网