📅  最后修改于: 2023-12-03 15:20:12.648000             🧑  作者: Mango
Swagger UI是一个交互式的UI,用于可视化RESTful API的文档,并允许用户提交API请求。Spring Boot是一个快速开发的Java框架,使用Spring Boot集成Swagger UI可以使用注解轻松生成API文档,并提供如参数校验、鉴权等功能。
然而,在使用Swagger UI时,我们可能会遇到401的错误,这意味着我们的API需要认证或者需要提供授权信息。本文将介绍如何使用Spring Boot集成Swagger UI并解决401错误的问题。
要解决401错误,我们需要使用Spring Security。添加以下依赖:
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
在配置文件中添加以下配置:
spring:
security:
user:
name: user
password: password
上面的配置将添加一个名为“user”, 密码为“password”的用户。
默认情况下,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”角色的用户。
在配置文件中添加以下配置:
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。