【Shiro】一步步的看Shiro 【Shiro与Spring
2021-01-19 本文已影响0人
程序员佩奇
大家好,最近在研究关于权限认证框架相关的技术,梳理了框架和知识点,今天第一步先看一下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有什么区别或者有什么不同看法的,欢迎留言大家共同学习