Я создал REST API с помощью Spring Boot 2, где настроил Swagger и реализовал безопасность с помощью Spring Security. Цель состоит в том, чтобы защитить все запросы к API и разрешить доступ к пользовательскому интерфейсу Swagger.
В Spring Boot 2 все работало хорошо, но с тех пор, как я перешел на Spring Boot 3, каждый запрос был защищен, и я не могу больше доступа к пользовательскому интерфейсу Swagger без аутентификации.
Кто-нибудь сталкивался с той же проблемой?
Я использую следующие зависимости:
org.springframework.boot
spring-boot-starter-parent
3.1.4
org.springframework.boot
spring-boot-starter-security
org.springdoc
springdoc-openapi-starter-webmvc-ui
2.2.0
И следующий класс конфигурации:
@EnableWebSecurity
public class SecurityConfiguration {
@Bean
public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
http
.csrf(CsrfConfigurer::disable)
.authorizeHttpRequests((authorize) -> authorize
// Allow access to Swagger
.requestMatchers(
"/v3/api-docs/**",
"/swagger-ui/**",
"/swagger-ui.html"
).permitAll()
// Authenticate all other requests
.anyRequest().authenticated()
)
// Use basic authentication (user/pass)
.httpBasic(Customizer.withDefaults());
return http.build();
}
}
Подробнее здесь: https://stackoverflow.com/questions/771 ... swagger-ui