에러해결

[에러해결] Swagger Failed to load remote configuration, security 설정 이슈

양쏘쏘 2024. 7. 2. 17:30
728x90
반응형

1. 문제 상황

Swagger를 먼저 설정해준 후에 spring security를 설정하려고하는 과정에서 아래와 같은 에러가 발생했다. 

에러 화면

개발자 화면에서 확인하면 생각보다 간단한 문제이다.

spring security 설정으로 인해서 /v3/api-docs/ 하위에 접근을 못하게 되면서 swagger의 기본 설정 정보를 못 가져 온 것이다. 

개발자 도구

 

2. 해결방법

Spring Security에서 설정에 /v3/api-docs/**를 추가하면 해결된다.

 @Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.csrf(AbstractHttpConfigurer::disable)
                .authorizeHttpRequests(auth -> auth
                        .requestMatchers("/", "/swagger-ui/**","/v3/api-docs/**").permitAll()
                        .anyRequest().authenticated()
                );
        return http.build();
    }

해결 화면

 

권한을 주는 경로가 많다면 이렇게 리팩토링해도 괜찮을 것 같다. 

  private static final String[] ALLOW_PATTERNS = {
            "/",
            "/swagger-ui/**",
            "/v3/api-docs/**"
    };
    
	@Bean
    public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        http.csrf(AbstractHttpConfigurer::disable)
                .authorizeHttpRequests(auth -> auth
                        .requestMatchers(ALLOW_PATTERNS).permitAll()
                        .anyRequest().authenticated()
                );
        return http.build();
    }
728x90