实现Spring Boot 401设置白名单

一、流程

步骤 操作
1 创建一个Spring Boot项目
2 配置Spring Security
3 实现自定义认证逻辑
4 设置白名单

二、具体步骤及代码实现

1. 创建一个Spring Boot项目

首先,你需要创建一个新的Spring Boot项目。可以使用Spring Initializr快速生成一个基本的项目结构。

2. 配置Spring Security

pom.xml文件中添加Spring Security依赖:

```xml
<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-security</artifactId>
</dependency>

### 3. 实现自定义认证逻辑

创建一个继承`WebSecurityConfigurerAdapter`的配置类,并重写`configure(HttpSecurity http)`方法,实现自定义的认证逻辑。在这个方法中,你可以设置白名单和认证规则。

```markdown
```java
@Configuration
@EnableWebSecurity
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http.authorizeRequests()
            .antMatchers("/public/**").permitAll() // 设置白名单
            .anyRequest().authenticated()
            .and()
            .formLogin()
            .and()
            .httpBasic();
    }
}

### 4. 设置白名单

在上面的代码中,我们使用`.antMatchers("/public/**").permitAll()`来设置白名单,允许访问`/public`路径下的所有资源而不需要认证。

## 类图

```mermaid
classDiagram
    class WebSecurityConfigurerAdapter {
        + configure(HttpSecurity http)
    }
    class SecurityConfig {
        + configure(HttpSecurity http)
    }

序列图

sequenceDiagram
    participant Client
    participant SecurityConfig
    participant HttpSecurity

    Client ->> SecurityConfig: 请求访问 /public
    SecurityConfig ->> HttpSecurity: 设置白名单 /public
    HttpSecurity -->> SecurityConfig: 允许访问
    SecurityConfig -->> Client: 返回资源

通过以上步骤,你可以成功实现Spring Boot项目中的401设置白名单功能。希望能够帮助到你!