【Shiro】一步步的看Shiro 【Shiro与Spring Security区别】

大家好,最近在研究关于权限认证框架相关的技术,梳理了框架和知识点,今天第一步先看一下Shiro,以及为什么要用Shiro,Shiro和Spring Security的区别是什么?

Shiro简介

Apache Shiro 是 Java 的一个安全框架。目前,使用 Apache Shiro 的人越来越多,因为它相
当简单,Shiro 可以非常容易的开发出足够好的应用,其不仅可以用在 JavaSE 环境,也可以用在
JavaEE 环境。Shiro 可以帮助我们完成:认证、授权、加密、会话管理、与 Web 集成、缓
存等

Spring Security简介

Spring Security是一个提供身份验证、授权和防范常见攻击的框架。它对命令式应用程序和响应式应用程序都提供了一流的支持,是保护基于spring的应用程序的事实上的标准

Spring Security Oauth2简介

OAuth for Spring Security为Spring Security提供了一个OAuth实现。支持OAuth提供者和OAuth消费者的实现。支持OAuth 2.0

为什么使用Shiro?

  • shiro目前用户量比较多,很多公司或者个人开发者都在使用,社区和文档以及个人博客撰写使用方法很多,很丰富
  • shiro简单,可配置性强,可扩展性强,开发者可以快速的上手完成一套权限框架
  • 不和任何框架捆绑,可以独立运行

为什么使用Spring Security?

  • 因为它属于Spring体系,和Spring无缝结合,只需要简单配置即可使用
  • 对oauth2协议也有很好的支持,以及OpenId
  • 除了这点,其余的特点shiro也可以通过扩展完全可以满足当前需求

Shiro和Spring Security比较,如何选择?

  • 这两种框架都可以使用,Shiro相对来说学习成本低,可以快速掌握,而Spring Security不管是官方文档还是源码来说学习成本较高,需要花费的时间也多,想扩展的话需要深入了解源码
  • 选择Shiro的原因,Shiro提供了最简单的方式实现认证权限,我们可以扩展token/jwt方式改为无状态模式的方式(前后端分离一般使用),并且可以加入会话状态,可以保证用户身份,以及单一登录,单点登录等需求,都可以进行扩展
  • 选择Spring Security的原因,本身集成了Oauth2协议,作为供应商提供给第三方平台对接,可以快速对接,shiro的话就需要单独配置扩展了,但是如果使用Oauth2则没法保证用户身份的验证,只能是无状态的,虽然后续出现了OpenId Connect(OIDC)的方式保证用户身份标识,但是学习成本又增加了

所以这两种认证权限框架都是可以选择的,看主要使用的场景是什么,业务的需求是什么,没有完美的框架只有合适的框架,如果项目不大,想可控性扩展性强的话建议选择使用Shiro,如果项目很大,并且与业务完美切合,不需要经常的自定义扩展一些业务,可以使用Spring Security,开始看具体项目的选择咯

完美撒花~,下面我会根据Shiro的具体内容结合不同场景的进行讲述以及配置。

有需要讨论Shiro和Spring Security有什么区别或者有什么不同看法的,欢迎留言大家共同学习

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容