📜  spring boot swagger ui 401 - Java (1)

📅  最后修改于: 2023-12-03 15:20:12.648000             🧑  作者: Mango

Spring Boot Swagger UI 401 - Java 介绍

简介

Swagger UI是一个交互式的UI,用于可视化RESTful API的文档,并允许用户提交API请求。Spring Boot是一个快速开发的Java框架,使用Spring Boot集成Swagger UI可以使用注解轻松生成API文档,并提供如参数校验、鉴权等功能。

然而,在使用Swagger UI时,我们可能会遇到401的错误,这意味着我们的API需要认证或者需要提供授权信息。本文将介绍如何使用Spring Boot集成Swagger UI并解决401错误的问题。

解决401错误
添加Security依赖

要解决401错误,我们需要使用Spring Security。添加以下依赖:

<dependency>
   <groupId>org.springframework.boot</groupId>
   <artifactId>spring-boot-starter-security</artifactId>
</dependency>
配置Security

在配置文件中添加以下配置:

spring:
  security:
    user:
      name: user
      password: password

上面的配置将添加一个名为“user”, 密码为“password”的用户。

开启Swagger UI的Security

默认情况下,Swagger UI是没有启用Spring Security的。我们需要为Swagger UI添加一个Spring Security的安全配置。

@Configuration
@EnableWebSecurity
@EnableGlobalMethodSecurity(prePostEnabled = true)
public class SecurityConfig extends WebSecurityConfigurerAdapter {

    @Override
    protected void configure(HttpSecurity http) throws Exception {
        http
            .authorizeRequests()
            .antMatchers("/swagger-ui/**").hasRole("USER")
            .and()
            .httpBasic()
            .and()
            .csrf().disable();
    }

    @Autowired
    public void configureGlobal(AuthenticationManagerBuilder auth) throws Exception {
        auth.inMemoryAuthentication()
            .withUser("user")
            .password("password")
            .roles("USER");
    }
}

上面的代码将启用Spring Security,并保护Swagger UI。我们还添加了一个名为“user”,密码为“password”的用户,并将Swagger UI授权给具有“USER”角色的用户。

配置Swagger UI

在配置文件中添加以下配置:

springfox:
  documentation:
    swagger-ui:
      enabled: true
  swagger:
    enabled: true
    paths: /api/.*

上面的配置启用了Swagger UI,并指定了要生成文档的API路径。

总结

本文介绍了如何使用Spring Boot集成Swagger UI,并解决了可能遇到的401错误。添加Spring Security的依赖,配置文件和安全配置可以使我们的API更加安全和可靠。通过Swagger UI,我们可以以互动的方式测试和使用我们的API。