Spring Security如何实现复杂的安全策略配置?

摘要:Spring Security title:version 5.6.x Spring Security 是一个提供认证、授权以及一些常见漏洞防护的框架。该框架为 Servlet 应用程序(Spring MVC)和响应式应用程序(Spring
Spring Security title:version 5.6.x Spring Security 是一个提供认证、授权以及一些常见漏洞防护的框架。该框架为 Servlet 应用程序(Spring MVC)和响应式应用程序(Spring WebFlux,本文不表)提供防护,并作为防护 spring 项目的事实标准。 Servlet 应用程序 Spring Security 通过标准的 Servlet 过滤器 集成 Servlet 容器。这表明只要在 Servlet 容器中运行的应用程序都可以使用该框架。具体来说,你不需要在以 Servlet 为容器的应用程序中专门引入 Spring,就可以使用该框架。 在 Spring Boot 项目中使用 Spring Security 新建项目 build.gradle 中输入以下内容: plugins { id 'org.springframework.boot' version '2.6.7' id 'io.spring.dependency-management' version '1.0.11.RELEASE' id 'java' } group = 'com.github.toy' version = '0.0.1-SNAPSHOT' sourceCompatibility = '17' repositories { mavenCentral() } dependencies { implementation 'org.springframework.boot:spring-boot-starter-security' implementation 'org.springframework.boot:spring-boot-starter-web' testImplementation 'org.springframework.boot:spring-boot-starter-test' testImplementation 'org.springframework.security:spring-security-test' } tasks.named('test') { useJUnitPlatform() } 运行 控制台输出 ... 2022-04-30 16:21:28.626 WARN 37347 --- [ main] .s.s.UserDetailsServiceAutoConfiguration : Using generated security password: fceb50df-05cf-40e4-a4c5-67d5da55a6b4 ... Spring Boot Auto Configuration Spring Boot 自动处理以下内容: 启用 Spring Security 的默认配置,它会创建一个 servlet 过滤器 bean,叫做 springSecurityFilterChain。这个 bean 负责应用程序中的所有安全工作(保护应用程序的 URL,验证提交的用户名和密码,重定向登录表单,等等)。 用户名(username)为 user,密码为 console 中生成的随机密码,使用此账号和密码创建 UserDetailsService bean。 通过 Servlet 容器为每个请求注册名为 springSecurityFilterChain 的过滤器。 Spring Boot 配置的内容不多,但是做的很多。
阅读全文