Spring Security 6.x 系列【1】基础篇之概述及入门案例

这篇具有很好参考价值的文章主要介绍了Spring Security 6.x 系列【1】基础篇之概述及入门案例。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

有道无术,术尚可求,有术无道,止于术。

本系列Spring Boot 版本 3.0.4

本系列Spring Security 版本 6.0.2

源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

导读

本系列基于最新Spring Boot 3.0 + Spring Security 6.0版本,由浅入深,从实战到源码分析,详细讲解各种 Spring Security 的使用技巧,适用于初学和进阶使用者。

本系列学习路线:
Spring Security 6.x 系列【1】基础篇之概述及入门案例

安全框架

开发软件系统时,Web 安全非常重要,JAVA安全框架,大家听得最多的应该是Spring Security Apache Shiro。国产的有Sa-Token。

这些框架底层的原理都大同小异,只要学会一个,其他的上手就非常容易👊👊👊

一个功能完善的安全框架,一般需要支持以下特性:

  • 认证(Authentication):验证用户的身份
  • 授权(Authorization):验证用户的访问和权限,对已认证用户进行访问控制
  • 加密:对重要信息进行加密处理,比如密码加密
  • 会话管理:对用户认证、会话信息进行存储管理
  • 防御攻击:对常见的网络攻击进行防御

Spring Security

GitHub地址
官方文档地址

Spring Security 6.0提供了许多新功能,并且需要JDK 17

概述

Spring Security Spring 组织提供的一个开源安全框架,目前最新的版本为6.0.2,基于Spring 开发,所以非常适合在Spring Boot中使用。

Spring Security提供认证、授权、抵御常见攻击等功能,将认证授权分离,并提供了扩展点。对保护命令式(Spring MVC)和响应式(Spring Webfulx)应用程序有一流的支持,是保护基于Spring开发的应用程序的事实标准。

认证Spring Security 身份验证提供了全面的支持,身份验证是验证进行访问的主体身份。常用方法是要求用户输入用户名密码。一旦执行身份验证,就知道身份并可以执行授权

授权授权指的是验证某个用户是否有权限执行某个操作。在系统中不同用户所具有的权限是不同的。比如对某条数据来说,有的用户只能进行读取,而有的用户可以进行修改。一般系统会为不同的用户分配不同的角色,而每个角色则对应一系列的权限。

发展历史

Spring 社区在成立后,2003年底开始考虑开发安全框架,最初是Acegi,大约一年后,Acegi Security成为Spring Framework的正式子项目。

2006年5月Acegi Security发布了1.0版, 于2007年底更名为Spring Security

如今Spring Security拥有一个强大且活跃的开源社区,当前最新版本为6.0.2

入门案例

1. 创建工程

Spring Boot 3.0系列【3】基础篇之使用Spring Initializr快速创建项目

使用Spring Initializr快速创建一个Spring Boot 3.0项目,可以直接选择引入Spring Security依赖:
Spring Security 6.x 系列【1】基础篇之概述及入门案例
POM依赖坐标如下所示:

    <dependencies>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
            <optional>true</optional>
        </dependency>
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-test</artifactId>
            <scope>test</scope>
        </dependency>
        <!--Spring Boot 提供的 Security 启动器 -->
        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-security</artifactId>
        </dependency>
    </dependencies>

spring-boot-starter-securitySpring Boot 官方提供的启动器,提供了自动配置和依赖包管理:
Spring Security 6.x 系列【1】基础篇之概述及入门案例
主要包含以下几个子模块:

  • spring-security-core: 核心包,包含核心认证和访问权限功能类和接口、远程支持和基本配置API
  • spring-security-webWEB框架集成包,包含过滤器和相关的web安全基础设施代码
  • spring-security-config:包含 security 命名空间解析代码和Java配置代码

2. 运行

启动程序,UserDetailsServiceAutoConfiguration自动配置类,会生成一个默认随机登录密码(因为目前没有配置用户,配置后不会生成):
Spring Security 6.x 系列【1】基础篇之概述及入门案例
DefaultSecurityFilterChain默认的过滤器链会打印出所有的Filter过滤器:
Spring Security 6.x 系列【1】基础篇之概述及入门案例

3. 测试

编写访问接口:

@RestController
public class TestController {

    @GetMapping("/test")
    public Object test() {
        return "Hello Security";
    }
}

访问测试接口,此时被重定向到默认登录页面:
Spring Security 6.x 系列【1】基础篇之概述及入门案例

用户名输入user,密码输入控制台生成的随机登录密码,登录成功后重定向到访问接口:
Spring Security 6.x 系列【1】基础篇之概述及入门案例
也可以在yml中配置一个默认的登录用户及密码:文章来源地址https://www.toymoban.com/news/detail-459073.html

spring:
  security:
    user:
      name: test
      password: 123456

到了这里,关于Spring Security 6.x 系列【1】基础篇之概述及入门案例的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring Security 6.x 系列【51】授权篇之动态权限规则

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.1.0 本系列Spring Security 版本 6.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 在开始阅读本篇文档前,您需要了解以下文档的相关知识: Spring Security 6.x 系列【16】授权篇之访问控制 Spring Securi

    2024年02月07日
    浏览(61)
  • Spring Security 6.0系列【14】认证篇之添加登录验证码功能

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 验证码 ( CAPTCHA )是“ Completely Automated Public Turing test to tell Computers and Humans Apart ”(全自动区分计算机和人类的图灵

    2023年04月09日
    浏览(69)
  • Spring Security 6.0系列【30】授权服务器篇之JOSE规范

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月01日
    浏览(54)
  • Spring Security 6.0系列【15】认证篇之实现短信验证码登录功能

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 目前大部分网站都支持使用 手机号+短信验证码 登录,比

    2023年04月24日
    浏览(78)
  • Spring Security 6.x 系列【45】微服务篇之搭建统一认证服务

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月09日
    浏览(46)
  • Spring Security 6.x 系列【43】授权服务器篇之设备授权模式

    有道无术,术尚可求,有术无道,止于术。 本篇Spring Boot 版本 3.0.6 本篇Spring Security 版本 6.1.0 本篇Spring Authorization Server 版本 1.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月05日
    浏览(48)
  • Spring Security 6.x 系列【15】认证篇之实现短信验证码登录功能

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo 目前大部分网站都支持使用 手机号+短信验证码 登录,比

    2024年02月05日
    浏览(70)
  • Spring Security 6.x 系列【50】授权服务器篇之Spring Boot 3.1自动配置

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.10 本系列Spring Security 版本 6.1.0 本系列Spring Authorization Serve 版本 1.1.0 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月08日
    浏览(43)
  • Spring Security 6.x 系列【46】漏洞防护篇之安全相关的HTTP响应头

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月07日
    浏览(44)
  • Spring Security 6.x 系列【36】授权服务器篇之OpenID Connect 1.0

    有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列Spring Security 版本 6.0.2 本系列Spring Authorization Server 版本 1.0.2 源码地址:https://gitee.com/pearl-organization/study-spring-security-demo

    2024年02月04日
    浏览(57)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包