SpringBoot3整合Spring Security6.4.2 安全认证框架实现简单身份认证
SpringBoot3整合Spring Security6.4.2 安全认证框架实现简单身份认证

前几篇文章整合了RocketMQ、RabbitMQ和Kafka、Apache Pulsar、ActiveMQ消息中间件。今天基于SpringBoot3.4.1整合Spring Security6.4.2 ,Spring Security是一个Java权限安全框架。今天基于Spring Security6.4.2 实现简单的系统登录功能
完整代码在文章最后,如果觉得本篇文章对你有用,记得点赞、关注、收藏哦。你的支持是我持续更新的动力!
SpringBoot3专栏软件环境
- JDK17.0.12
- SpringBoot3.4.1
- Spring Security6.4.2
- Thymeleaf3.4.1
- IDEA2024.3.2
我们先看本篇文章对应的项目结构,请看下图

1 Spring Security是什么
Spring Security是一个提供认证、授权和防止常见攻击的框架。它对保护命令式和响应式应用都提供了一流的支持,是保护基于Spring的应用程序的既定标准。
官方文档:
2 Spring Security能干什么
- 身份认证(authentication)
- 授权(authorization)
- 防御常见攻击(protection against common attacks)

2.1 什么是身份认证
身份认证是验证有哪些用户具有访问系统资源的权限,判断用户是否为合法用户。常见的身份认证方式有基于用户名/密码,手机号/短信,第三方社交账号等认证方式。
2.2 什么是授权
用户进行身份认证登录系统后,系统会控制该用户能访问哪些资源,那么这个过程就叫做授权。该用户无法访问未经授权的资源。在系统中这个资源就是指各个具体的业务功能。
2.3 防御常见攻击
- CSRF
- HTTP Headers
- HTTP Requests
3 基于Spring Security6实现身份认证(Authentication)
今天我们先基于SpringBoot3和Spring Security6.4.2 实现简单的身份认证功能,对Spring Security有个简单的认识,掌握身份认证基本的代码流程,大家也也可以结合Spring Security官方Demo进行学习,以下是官方Demo地址
3.1 子工程pom依赖
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<modelVersion>4.0.0</modelVersion>
<parent>
<groupId>cn.itbeien</groupId>
<artifactId>springboot3-labs-master</artifactId>
<version>1.0-SNAPSHOT</version>
</parent>
<artifactId>springboot-springsecurity</artifactId>
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-thymeleaf</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.thymeleaf.extras</groupId>
<artifactId>thymeleaf-extras-springsecurity6</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-test</artifactId>
<scope>test</scope>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
</dependencies>
</project>
3.2 配置信息
server.port=8888
server.servlet.context-path=/ss
3.3 Controller层代码
package cn.itbeien.springsecurity.controller;
import org.springframework.stereotype.Controller;
import org.springframework.web.bind.annotation.GetMapping;
/**
* @author itbeien
* 项目网站:https://www.itbeien.cn
* 公众号:贝恩聊架构
* 全网同名,欢迎小伙伴们关注
* Copyright© 2024 itbeien
*/
@Controller
public class SystemController {
@GetMapping("/")
public String index(){
return "index";
}
}
3.4 前端代码
<html xmlns:th="https://www.thymeleaf.org">
<head>
<title>Spring Security安全认证!</title>
</head>
<body>
<h1>Spring Security安全认证</h1>
<a th:href="@{/logout}">Log Out</a>
</body>
</html>
3.5 身份认证测试
在我们启动系统的过程中,Spring Security会在控制台生成默认的用户和密码,默认的用户为user,密码我们可以在控制台查看

启动成功后,我们访问http://localhost:8888/ss,出现如下登录界面则代表我们整合Spring Security6成功

输入用户名user和控制台打印的密码进行登录,下图为登录成功

点击Logout进行系统退出操作


以上就是我们今天SpringBoot3.4.1整合Spring Security6.4.2安全认证框架实现简单的身份认证流程及相关配置,完整代码在文章最后进行获取!
欢迎大家关注我的项目实战内容itbeien.cn,一起学习一起进步,在项目和业务中理解各种技术。

欢迎沟通交流技术和支付业务,一起探讨聚合支付/预付卡系统业务、技术、系统架构、微服务、容器化。并结合聚合支付系统深入技术框架/微服务原理及分布式事务原理。加入我的知识星球吧

SpringBoot3专栏
01SpringBoot3专栏-SpringBoot3.4.0整合Mybatis-plus和Mybatis
02SpringBoot3.4.0结合Mybatis-plus实现动态数据源
03mapstruct对象映射在Springboot3中这样用就对了
04RocketMQ5.3.1集成SpringBoot3.4.0就这样简单
05SpringBoot3.4.0整合Redisson实现分布式锁
06MySQL增量数据同步利器Canal1.1.7环境搭建流程
07SpringBoot3.4.0集成Canal1.1.7实现MySQL实时同步数据到Redis
08基于Docker-SpringBoot3.4.0集成Apache Pulsar4.0.1实现消息发布和订阅
09SpringBoot3.4.0整合消息中间件Kafka和RabbitMQ
10SpringBoot3.4.0整合ActiveMQ6.1.4
跟着我学微服务系列
01跟着我学微服务,什么是微服务?微服务有哪些主流解决方案?
05SpringCloudAlibaba之图文搞懂微服务核心组件在企业级支付系统中的应用
06JDK17+SpringBoot3.4.0+Netty4.1.115搭建企业级支付系统POS网关
07JDK17+SpringCloud2023.0.3搭建企业级支付系统-预付卡支付交易微服务
08JDK17+Dubbo3.3.2搭建企业级支付系统-预付卡支付交易微服务
09JDK17+SpringBoot3.3.6+Netty4.1.115实现企业级支付系统POS网关签到功能
贝恩聊架构-项目实战地址
欢迎大家一起讨论学习,加我备注"JAVA"拉你进入技术讨论群,在技术学习、成长、工作的路上不迷路!加我后不要急,每天下午6点左右通过!营销号免入

4 源码地址
贝恩聊架构-SpringBoot3专栏系列文章、资料和源代码会同步到以下地址,代码和资料每周都会同步更新
该仓库地址主要用于贝恩聊架构-SpringBoot3专栏、基于企业级支付系统,学习微服务整体技术栈
