Spring Security 6.x
Spring创建 SpringBoot 项目,默认 SpringBoot 已经为我们添加了Srping Security的依赖及其对应的版本。
我们只需要在pom
文件总引入相应的启动器(spring-boot-starter-security
)即可。
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
</dependencies>
在添加了Spring Security启动器后,我们的项目就已经受到了Spring Security的管控,当我们去访问项目中定义的接口时,默认会跳转到Spring Security提供的登陆页面进行登陆授权。在我们登陆成功后,才有权限访问这些api
。
默认情况下,Spring Security提供了一个默认的用户,用户名为user
,密码会在控制台输出:
我们也可以在application.yml
中去自定义用户和密码。
spring:
security:
user:
name: admin
password: 123
Spring Security中的认证、授权等功能都是基于过滤器完成的。Spring Security为我们提供了30多个过滤器,默认情况下 SpringBoot 在对Spring Security进入自动化配置时,会创建一个SpringSecurityFilterChain
的过滤器,并注入到 Spring 容器,这个过滤器将负责所有的安全管理,包括用户认证,授权,重定向到登陆页面等。
通过对源代码的断点调试后,我们会发现Spring Security默认加载了16个过滤器。
一个请求过来Spring Security会按照下图的步骤处理:
通过Spring Security的源代码我们可以看到,它默认是对所有的请求开启了认证,并启用了Form
表单和Basic
登陆。当然这些我们都是能过通过Spring Security提供的配置进行自定义的。
最后更新于
这有帮助吗?