SpringSecurity6从入门到上天系列第一篇:SpringSecurity6开篇介绍从概念开始把SpringSecurity6送上天

本文主要是介绍SpringSecurity6从入门到上天系列第一篇:SpringSecurity6开篇介绍从概念开始把SpringSecurity6送上天,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

文章目录

一:什么是SpringSecurity

1:核心内容

(一):用户认证Authentication

(二):用户授权Authorization

2:安全框架对比

(一):Shiro

(二):Spring Security

(三):Sa-Token

(四):开发者自定义

二:SpringSecurity的历史

1:SpringSecurity前身

2:SpringSecurity迭代历史

3:SpringBoot对SpringSecurity的颠覆


文章简介:本文参考自大神孙哥的分享,这里可以找到孙哥:孙哥个人主页
作者简介:一个颜值99分,只比孙哥差一点的程序员
本专栏简介:话不多说,让我们和孙哥一起干翻SpringSecurity6!

一:什么是SpringSecurity

        Spring Security是个功能强大,且高度可定制的身份验证和访问控制框架。它是保护基于 Spring应用程序的事实标准。

        Spring Security是一个框架,专注于为java 应用程序提供身份验证和授权。与所有 Spring项目样,spring Security 的真正强大之处在于它可以轻松地扩展以满足自定义需求。

        Spring Security是Spring家族中的一个 功能强大、可进行 身份验证 (认证) 和 访问控制(授的框架,用于实现系统中的 权限管理

1:核心内容

        一般来说,Web应用的安全性包括 用户认证 和 用户授权 两个部分,这两点也是SpringSecurity的主要核心内容。

(一):用户认证Authentication

        用户认证,就是验证一个用户是否是合法身份,能否访问该系统的过程,最简单的用户认证方式就是要求用户输入的用户名和密码,系统通过用户名和密码来校验用户身份是否合法。常见的认证方式还有 基于生物学特征的身份验证,需要录入指纹、人脸识别等;还有要求通过硬件Key等刷卡的系统,需要刷卡。

(二):用户授权Authorization

        用户授权,就是控制一个合法用户有权限执行哪些操作,也就是访问控制,控制谁能访问哪些资源。用户在身份认证后,需要分配权限方可访问系统的资源,对于没有权限的资源用户是不能访问的。如,购物网站 买家登录系统能查询、加购物车、下订单,卖家登录后可以添加商品、修改价格、发货,卖家能做的操作买家是不能操作的,这就是不同的人有不同的权限,做不同的事情。

2:安全框架对比

        在 Java EE 企业级开发中,安全管理架目前比较常见的有:

(一):Shiro

        优点: 轻量级的安全管理框架 (Apache提供) 、简单(把复杂的事情变简单)、易于集成也可以在JavaSE环境中使用等。
        缺点: 在微服务时代,shiro就显得力不从心了,在微服务面前和扩展方面,无法充分展示自己的优势。

(二):Spring Security

        优点: 作为 Spring家族中的一员,和Spring等技术可以实现无缝整合。同时对OAuth2有着良好的支持,再加上Spring Cloud对 Spring Security 的不断加持 (推出Spring Cloud Security),让Spring Securiy不知不觉中成为微服务项目的首选安全管理方案。

        缺点: 重量级

        当前微服务体系首选!他的功能比shiro强大的多得多!

(三):Sa-Token

        轻量级的Java权限认证框架,主要解决登录认证、权限认证、OAuth2.0、分布式Session会话、微服务网关鉴权等一系列权限相关问题。Sa-Token使用简单,功能强大,只需一行代码就可以完成会话登录或校验登录状态。

        Sa-Token更适合于前后台分离架构,支持多种模式和场景的token生成和验证。

        Sa-Token是一个相对较新的框架,但已经获得了不少关注和好评

(四):开发者自定义

        即程序员开发实现权限管理,基于角色的访问控制 (Role-Based Access Control简称0RBAC)。但是一个系统的安全,不仅仅是登录和权限控制这么简单,我们还要考虑种各样可能存在的网络攻击以及防御策略,从这个角度来说,开发者自己实现安全管理也并非是一件容易的事情,只有大公司才有足够的人力物力去支持这件事情。

二:SpringSecurity的历史

1:SpringSecurity前身

        Spring Security 最早叫 Acegi Security,是基于 Spring,可以帮助我们为项目建立丰富的角色与权限管理系统。Acegi security 虽然好用,但是最为人诟病的则是它臃肿烦琐的配置这一问题最终也遗传给了 Spring Security。

2:SpringSecurity迭代历史

        Acegi Security始于2003 年
        2007年被并入Spring组合项目,并更名为 Spring Security
        2008 年4月发布了改名后的第个版本 Spring Security 2.0.0Spring Security 最新版本6.1.5,SNAPSHOT版本6.2.0

3:SpringBoot对SpringSecurity的颠覆

        和Shiro 相比,Spring Security重量级并且配置烦琐。自从 Spring Boot 推出后,就彻底颠覆了传统的 JavaEE 开发,自动化配置让许多事情变得非常容易。SpringBoot 对SpringSecurity 提供了自动化配置方案,只需要引入一个依赖,不需要任何额外配置,!项目的所有接口就会被自动保护起来了。在 Spring Cloud 中,很多涉及安全管理的问题,也是 Spring Security 依赖两行配置就能搞定,在和 Spring 家族的产品一起使用时,Spring Security 的优势就非常明显了

这篇关于SpringSecurity6从入门到上天系列第一篇:SpringSecurity6开篇介绍从概念开始把SpringSecurity6送上天的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/310864

相关文章

Java Lettuce 客户端入门到生产的实现步骤

《JavaLettuce客户端入门到生产的实现步骤》本文主要介绍了JavaLettuce客户端入门到生产的实现步骤,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目录1 安装依赖MavenGradle2 最小化连接示例3 核心特性速览4 生产环境配置建议5 常见问题

Java AOP面向切面编程的概念和实现方式

《JavaAOP面向切面编程的概念和实现方式》AOP是面向切面编程,通过动态代理将横切关注点(如日志、事务)与核心业务逻辑分离,提升代码复用性和可维护性,本文给大家介绍JavaAOP面向切面编程的概... 目录一、AOP 是什么?二、AOP 的核心概念与实现方式核心概念实现方式三、Spring AOP 的关

5 种使用Python自动化处理PDF的实用方法介绍

《5种使用Python自动化处理PDF的实用方法介绍》自动化处理PDF文件已成为减少重复工作、提升工作效率的重要手段,本文将介绍五种实用方法,从内置工具到专业库,帮助你在Python中实现PDF任务... 目录使用内置库(os、subprocess)调用外部工具使用 PyPDF2 进行基本 PDF 操作使用

Java Instrumentation从概念到基本用法详解

《JavaInstrumentation从概念到基本用法详解》JavaInstrumentation是java.lang.instrument包提供的API,允许开发者在类被JVM加载时对其进行修改... 目录一、什么是 Java Instrumentation主要用途二、核心概念1. Java Agent

Kotlin 协程之Channel的概念和基本使用详解

《Kotlin协程之Channel的概念和基本使用详解》文章介绍协程在复杂场景中使用Channel进行数据传递与控制,涵盖创建参数、缓冲策略、操作方式及异常处理,适用于持续数据流、多协程协作等,需注... 目录前言launch / async 适合的场景Channel 的概念和基本使用概念Channel 的

从入门到精通详解Python虚拟环境完全指南

《从入门到精通详解Python虚拟环境完全指南》Python虚拟环境是一个独立的Python运行环境,它允许你为不同的项目创建隔离的Python环境,下面小编就来和大家详细介绍一下吧... 目录什么是python虚拟环境一、使用venv创建和管理虚拟环境1.1 创建虚拟环境1.2 激活虚拟环境1.3 验证虚

redis-sentinel基础概念及部署流程

《redis-sentinel基础概念及部署流程》RedisSentinel是Redis的高可用解决方案,通过监控主从节点、自动故障转移、通知机制及配置提供,实现集群故障恢复与服务持续可用,核心组件包... 目录一. 引言二. 核心功能三. 核心组件四. 故障转移流程五. 服务部署六. sentinel部署

Java中HashMap的用法详细介绍

《Java中HashMap的用法详细介绍》JavaHashMap是一种高效的数据结构,用于存储键值对,它是基于哈希表实现的,提供快速的插入、删除和查找操作,:本文主要介绍Java中HashMap... 目录一.HashMap1.基本概念2.底层数据结构:3.HashCode和equals方法为什么重写Has

Springboot项目构建时各种依赖详细介绍与依赖关系说明详解

《Springboot项目构建时各种依赖详细介绍与依赖关系说明详解》SpringBoot通过spring-boot-dependencies统一依赖版本管理,spring-boot-starter-w... 目录一、spring-boot-dependencies1.简介2. 内容概览3.核心内容结构4.

Java List 使用举例(从入门到精通)

《JavaList使用举例(从入门到精通)》本文系统讲解JavaList,涵盖基础概念、核心特性、常用实现(如ArrayList、LinkedList)及性能对比,介绍创建、操作、遍历方法,结合实... 目录一、List 基础概念1.1 什么是 List?1.2 List 的核心特性1.3 List 家族成