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

相关文章

从入门到精通详解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 家族成

一文带你迅速搞懂路由器/交换机/光猫三者概念区别

《一文带你迅速搞懂路由器/交换机/光猫三者概念区别》讨论网络设备时,常提及路由器、交换机及光猫等词汇,日常生活、工作中,这些设备至关重要,居家上网、企业内部沟通乃至互联网冲浪皆无法脱离其影响力,本文将... 当谈论网络设备时,我们常常会听到路由器、交换机和光猫这几个名词。它们是构建现代网络基础设施的关键组成

c++日志库log4cplus快速入门小结

《c++日志库log4cplus快速入门小结》文章浏览阅读1.1w次,点赞9次,收藏44次。本文介绍Log4cplus,一种适用于C++的线程安全日志记录API,提供灵活的日志管理和配置控制。文章涵盖... 目录简介日志等级配置文件使用关于初始化使用示例总结参考资料简介log4j 用于Java,log4c

史上最全MybatisPlus从入门到精通

《史上最全MybatisPlus从入门到精通》MyBatis-Plus是MyBatis增强工具,简化开发并提升效率,支持自动映射表名/字段与实体类,提供条件构造器、多种查询方式(等值/范围/模糊/分页... 目录1.简介2.基础篇2.1.通用mapper接口操作2.2.通用service接口操作3.进阶篇3

Python自定义异常的全面指南(入门到实践)

《Python自定义异常的全面指南(入门到实践)》想象你正在开发一个银行系统,用户转账时余额不足,如果直接抛出ValueError,调用方很难区分是金额格式错误还是余额不足,这正是Python自定义异... 目录引言:为什么需要自定义异常一、异常基础:先搞懂python的异常体系1.1 异常是什么?1.2

Python实现Word转PDF全攻略(从入门到实战)

《Python实现Word转PDF全攻略(从入门到实战)》在数字化办公场景中,Word文档的跨平台兼容性始终是个难题,而PDF格式凭借所见即所得的特性,已成为文档分发和归档的标准格式,下面小编就来和大... 目录一、为什么需要python处理Word转PDF?二、主流转换方案对比三、五套实战方案详解方案1: