Код: Выделить всё
org.springframework.boot
spring-boot-starter-parent
3.3.2
org.springdoc
springdoc-openapi-starter-webmvc-ui
2.6.0
Код: Выделить всё
@Bean
public UserDetailsService userDetailsService() {
// ensure the passwords are encoded properly
UserDetails userDetails = new User(userName, password, Collections.singleton(new SimpleGrantedAuthority("ROLE_" + ROLE)));
return new InMemoryUserDetailsManager(userDetails);
}
@Bean
@Primary
@ConditionalOnProperty(value = "swagger.auth.enabled", havingValue = "true", matchIfMissing = true)
public static BCryptPasswordEncoder passwordEncoder() {
return new BCryptPasswordEncoder();
}
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
String regexPattern;
if(swaggerAuthEnabled) {
/* Desc: Below regex will hold true for :
* - pattern containing health in its resource
* - pattern if it not contains
* > /actuator/
* > /v2/api-docs
* > /swagger-ui.html
* */
regexPattern = ".*(/health)|^(?!/v2/api-docs|.*/swagger\\-ui\\.html|.*/actuator/).*$";
} else {
regexPattern = ".*";
}
return http.authorizeHttpRequests(authorize -> authorize.requestMatchers(regexPattern)
.permitAll().anyRequest().authenticated())
.httpBasic(Customizer.withDefaults()).build();
}
Моя цель — добавить аутентификацию через пользовательский интерфейс Swagger , который работает нормально, но все мои API теперь также проходят аутентификацию, из-за чего я получаю ошибку 401 при доступе к ним через почтальон или другой сервис.
Я довольно новичок в OpenAPI и похоже, потеряны при просмотре всех других связанных решений по переполнению стека.
Спасибо за помощь!
Подробнее здесь: https://stackoverflow.com/questions/790 ... ng-openapi
Мобильная версия