有道无术,术尚可求,有术无道,止于术。 本系列Spring Boot 版本 3.0.4 本系列spring Security 版本 6.0.2 源码地址:https://gitee.co
有道无术,术尚可求,有术无道,止于术。
本系列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
的使用技巧,适用于初学和进阶使用者。
本系列学习路线:
开发软件系统时,WEB
安全非常重要,JAVA
安全框架,大家听得最多的应该是Spring Security
、Apache shiro
。国产的有Sa-Token。
这些框架底层的原理都大同小异,只要学会一个,其他的上手就非常容易👊👊👊
一个功能完善的安全框架,一般需要支持以下特性:
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
。
Spring Boot 3.0系列【3】基础篇之使用Spring Initializr快速创建项目
使用Spring Initializr
快速创建一个Spring Boot 3.0
项目,可以直接选择引入Spring Security
依赖:
POM
依赖坐标如下所示:
<dependencies> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-webartifactId> dependency> <dependency> <groupId>org.projectlombokgroupId> <artifactId>lombokartifactId> <optional>trueoptional> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-testartifactId> <scope>testscope> dependency> <dependency> <groupId>org.springframework.bootgroupId> <artifactId>spring-boot-starter-securityartifactId> dependency> dependencies>
spring-boot-starter-security
是Spring Boot
官方提供的启动器,提供了自动配置和依赖包管理:
主要包含以下几个子模块:
spring-security-core
: 核心包,包含核心认证和访问权限功能类和接口、远程支持和基本配置api
spring-security-web
:WEB
框架集成包,包含过滤器和相关的web
安全基础设施代码spring-security-config
:包含 security
命名空间解析代码和Java
配置代码启动程序,UserDetailsServiceAutoConfiguration
自动配置类,会生成一个默认随机登录密码(因为目前没有配置用户,配置后不会生成):
DefaultSecurityFilterChain
默认的过滤器链会打印出所有的Filter
过滤器:
编写访问接口:
@RestControllerpublic class TestController { @GetMapping("/test") public Object test() { return "Hello Security"; }}
访问测试接口,此时被重定向到默认登录页面:
用户名输入user
,密码输入控制台生成的随机登录密码,登录成功后重定向到访问接口:
也可以在yml
中配置一个默认的登录用户及密码:
spring: security: user: name: test passWord: 123456
来源地址:https://blog.csdn.net/qq_43437874/article/details/129727541
--结束END--
本文标题: Spring Security 6.x 系列【1】基础篇之概述及入门案例
本文链接: https://www.lsjlt.com/news/386835.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-04-01
2024-04-03
2024-04-03
2024-01-21
2024-01-21
2024-01-21
2024-01-21
2023-12-23
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0