SpringSecurity框架简介及与shiro特点对比

目录
  • 一、SpringSecurity框架简介
  • 二、比较一下shiro与SpringSecurity
    • 2.1.用户量
    • 2.2.使用的方便程度
    • 2.3.社区支持
    • 2.4.功能丰富性
  • 三、总结

一、 SpringSecurity 框架简介

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

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

SpringSecurity 的核心功能:

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

二、比较一下shiro与Spring Security

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

2.1.用户量

Shiro的使用量一直高于spring security。但是从趋势上来看(2020年10月的百度指数),Spring Security是在一直上升的,shiro的使用量同比、环比都进入了下滑期。

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。

以上就是SpringSecurity框架简介及与shiro特点对比的详细内容,更多关于SpringSecurity与shiro框架对比的资料请关注我们其它相关文章!

(0)

相关推荐

  • java编程SpringSecurity入门原理及应用简介

    目录 1. SpringSecurity 框架简介 1.1 概要 1.2 组成以及同款产品(shiro)对比 1.2.1 Spring Security 1.2.2 Shiro 1.3 模块划分 1.4 SpringSecurity 基本原理 1.5.UserDetailsService 接口讲解 2.SpringSecurity Web 权限方案 2.1设置登录系统的账号密码(三种方式) 设计数据库表 建立springboot项目,勾选相应依赖 完整pom.xml 数据库配置 创建对应的实体类

  • shiro与spring security用自定义异常处理401错误

    目录 shiro与spring security自定义异常处理401 背景 解决方案 SpringBoot整合Shiro自定义filter报错 No SecurityManager accessible to the calling code... 产生原因 解决办法 小结一下 shiro与spring security自定义异常处理401 背景 现在是前后端分离的时代,后端必然要统一处理返回结果,比如定义一个返回对象 public class ResponseData<T> { /** *

  • Apache shiro的简单介绍与使用教程(与spring整合使用)

    apache shiro框架简介 Apache Shiro是一个强大而灵活的开源安全框架,它能够干净利落地处理身份认证,授权,企业会话管理和加密.现在,使用Apache Shiro的人越来越多,因为它相当简单,相比比Spring Security,Shiro可能没有Spring Security那么多强大的功能,但是在实际工作时可能并不需要那么复杂的东西,所以使用简单的Shiro就足够了. 以下是你可以用 Apache Shiro所做的事情: Shiro的4大核心部分--身份验证,授权,会话管理

  • Spring Security 和Apache Shiro你需要具备哪些条件

    前言 web应用达到生产需要就必须有安全控制.java web领域经常提及的两大开源框架主要有两种选择 Spring Security和Apache Shiro .所以学习这两种框架也是java开发者提高水平的必经之路.从今天开始连续一段时间内,研究一下Spring Security. Spring Security 和Apache Shiro 相对于Apache Shiro,Spring Security提供了更多的诸如LDAP.OAuth2.0.ACL.Kerberos.SAML.SSO.O

  • Spring Security 安全框架应用原理解析

    Spring Security 简介 背景分析 企业中数据是最重要的资源,对于这些数据而言,有些可以直接匿名访问,有些只能登录以后才能访问,还有一些你登录成功以后,权限不够也不能访问.总之这些规则都是保护系统资源不被破坏的一种手段.几乎每个系统中都需要这样的措施对数据(资源)进行保护.我们通常会通过软件技术对这样业务进行具体的设计和实现.早期没有统一的标准,每个系统都有自己独立的设计实现,但是对于这个业务又是一个共性,后续市场上就基于共享做了具体的落地实现,例如Spring Security,A

  • SpringSecurity框架简介及与shiro特点对比

    目录 一.SpringSecurity框架简介 二.比较一下shiro与SpringSecurity 2.1.用户量 2.2.使用的方便程度 2.3.社区支持 2.4.功能丰富性 三.总结 一. SpringSecurity 框架简介 官网:https://spring.io/projects/spring-security Spring Security 是强大的,且容易定制的,基于Spring开发的实现认证登录与资源授权的应用安全框架. SpringSecurity 的核心功能: Authe

  • Apache Shiro 框架简介

    一.什么是Shiro  Apache Shiro是一个强大易用的Java安全框架,提供了认证.授权.加密和会话管理等功能: 认证 - 用户身份识别,常被称为用户"登录": 授权 - 访问控制: 密码加密 - 保护或隐藏数据防止被偷窥: 会话管理 - 每用户相关的时间敏感的状态. 对于任何一个应用程序,Shiro都可以提供全面的安全管理服务.并且相对于其他安全框架,Shiro要简单的多. 二.Shiro的架构介绍  首先,来了解一下Shiro的三个核心组件:Subject, Se

  • SpringBoot2.0 整合 SpringSecurity 框架实现用户权限安全管理方法

    一.Security简介 1.基础概念 Spring Security是一个能够为基于Spring的企业应用系统提供声明式的安全访问控制解决方案的安全框架.它提供了一组可以在Spring应用上下文中配置的Bean,充分利用了Spring的IOC,DI,AOP(面向切面编程)功能,为应用系统提供声明式的安全访问控制功能,减少了为安全控制编写大量重复代码的工作. 2.核心API解读 1).SecurityContextHolder 最基本的对象,保存着当前会话用户认证,权限,鉴权等核心数据.Secu

  • SpringSecurity框架下实现CSRF跨站攻击防御的方法

    一.什么是CSRF 很多朋友在学习Spring Security的时候,会将CORS(跨站资源共享)和CSRF(跨站请求伪造)弄混,以为二者是一回事.其实不是,先解释一下: CORS(跨站资源共享)是局部打破同源策略的限制,使在一定规则下HTTP请求可以突破浏览器限制,实现跨站访问. CSRF是一种网络攻击方式,也可以说是一种安全漏洞,这种安全漏洞在web开发中广泛存在. 当我们使用Spring Security的时候,这种CSRF漏洞默认的被防御掉了.但是你会发现在跨域请求的情况下,我们的PO

  • Java Spring框架简介与Spring IOC详解

    目录 Spring简介和配置 1.Spring概述 1.1 spring 是什么 1.2 Spring发展历程 1.3 Spring的优势 (理解) \1. 方便解耦,简化开发 \2. AOP 编程的支持 \3. 声明式事务的支持 \4. 方便程序的测试 \5. 方便集成各种优秀框架 \6. 降低 JavaEE API 的使用难度 \7. Java 源码是经典学习范例 1.4 Spring的体系结构(了解) 2.Spring IoC快速入门 2.1 IoC的概念和作用 2.2 Spring Io

  • Quarkus云原生开篇java框架简介

    目录 前言 什么是quarkus? 为什么用quarkus? 专为开发人员而设计 容器优先 命令式和响应式代码 结语 前言 Quarkus 是小红帽开源的专门针对云容器环境优化的云原生java框架,目前已迭代到1.6.0版本,已完成了大部分的框架库的集成扩展,为了让你低成本迁移到Quarkus来,它兼容主流的框架开发模式api,如spring web. Quarkus已具备企业级应用开发能力.而且未来容器云肯定是主流了,可以预见,未来的软件都是运行在k8s这样的容器集群里.而容器环境需要应用具备

  • MyBatis框架简介及入门案例详解

    目录 前言 MyBatis简介 快速入门 映射文件 sql片段与resultMap MyBatis的增删改查 1.添加操作 2.修改操作 3.删除操作 前言 传统的JDBC操作数据库都是通过写一个java类,在类中调用接口下的API执行相应的SQL,存在大量的硬编码.试想,若是开发一个日活度高的系统,那SQL的变动的非常大,就要我们去相应的类中修改Java代码,特别是进行查询操作时需要我们手动将结果集封装到实体类中,造成后期维护压力山大 总而言之,缺点多多 MyBatis简介 mybatis是一

  • MyBatis框架简介

    本文是我学习 MyBatis 的学习笔记和心得,也是我的第一篇技术文章,可能理解的比较浅显,也难免存在一些错误.如果您喜欢这篇文章,可以分享,并注明来源:如果您有疑问.意见或建议,欢迎留言批评指正,谢谢. 初见 MyBatis 就被它简介的风格所吸引了,大概是喜欢这种简单易上手的轻量级框架吧,功能强大却并不复杂. MyBatis 是一款在持久层使用的 SQL 映射框架,它可以将 SQL 语句单独写在 XML 配置文件中,或者用带有注释的 Mapper 映射类来完成 SQL 类型到 Java 类型

  • java struts2框架简介

    一.Struts2简介  1.Struts2概述 Struts2是Apache发行的MVC开源框架.注意:它只是表现层(MVC)框架. M:model-----数据封装------->javabean V:view------视图----------->jsp C:control------控制器--------> struts2( filter),struts1(servlet)  2.Struts2的来历 Struts1:也是apache开发的一套mvc的开源框架.在2005年之前非

  • node.js express框架简介与实现

    前言 之前学习过node.js接触过express框架,最近为了编写一个mock server正好用到了express.下面正好就跟大家介绍一下关于express. 今天的内容主要围绕这么几个方面? express框架初步介绍 express框架中的app.use和app.get/app.post mock server 介绍 mock server的实现思路 一.express框架初步介绍 关于express框架的介绍,这里我引用菜鸟教程的简介: Express是一个简洁而灵活的node.js

随机推荐