springboot3引入Spring Security
时间: 2024-12-28 13:27:40 浏览: 6
### 集成和配置 Spring Security in Spring Boot 3
#### 添加依赖项
为了使应用程序能够利用 Spring Security 的功能,在 `pom.xml` 或 `build.gradle` 文件中需引入必要的依赖。对于 Maven 构建工具而言,应加入如下所示的依赖条目:
```xml
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
```
此操作会自动导入 spring-security-config 和 spring-security-web 组件,从而简化安全机制的设置过程[^1]。
#### 自定义安全性配置类
创建一个新的 Java 类来扩展 WebSecurityConfigurerAdapter 并重写其方法以适应特定需求。然而需要注意的是,在较新的版本里官方建议直接实现 `SecurityFilterChain` 接口而不是继承已过时的适配器类。下面是一个简单的例子说明如何通过这种方式来进行基本的身份验证控制:
```java
import org.springframework.context.annotation.Bean;
import org.springframework.security.config.annotation.web.builders.HttpSecurity;
import org.springframework.security.config.annotation.web.configuration.EnableWebSecurity;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;
import org.springframework.security.web.SecurityFilterChain;
@EnableWebSecurity
public class SecurityConfig {
@Bean
public UserDetailsService userDetailsService() {
var userDetailsManager = new InMemoryUserDetailsManager();
// Add users here...
return userDetailsManager;
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
http.authorizeRequests()
.antMatchers("/").permitAll()
.anyRequest().authenticated()
.and()
.formLogin();
return http.build();
}
}
```
这段代码实现了两个主要的功能:一是提供了内存中的用户详情服务;二是设置了 HTTP 请求的安全策略,允许访问根路径而其他请求则需要经过认证才能继续处理[^2]。
#### 启动应用并测试
完成以上步骤之后就可以启动 Spring Boot 应用了。此时如果尝试访问受保护资源的话会被重定向到登录页面,成功登陆后方可正常浏览网页内容。另外还可以借助 Postman 等工具发送带有 Basic Auth 头部信息的 GET 请求来进行进一步验证[^4]。
阅读全文