Swagger Issue @RestControllerAdvice

dia·2025년 2월 4일

Issue

Swagger가 안됨

아래의 방법은 효과가 없었음 :

@Configuration
@EnableWebSecurity
@RequiredArgsConstructor
public class SecurityConfig {

	private final LoginSuccessHandler loginSuccessHandler;
	private final CustomAuthenticationFilter customAuthenticationFilter;

	@Bean
	public SecurityFilterChain securityFilterChain(HttpSecurity http) throws Exception {
        // try) 여기에 추가해봤었음
	}

	@Bean
	public WebSecurityCustomizer webSecurityCustomizer() {
		return web -> web.ignoring().requestMatchers(
			// try) 여기에 추가해봤었음
		);
	}

	@Bean
	public CorsConfigurationSource corsConfigurationSource() {
		...
	}
}
@Component
@RequiredArgsConstructor
@Slf4j
public class CustomAuthenticationFilter extends OncePerRequestFilter {
	private static final String AUTHORIZATION_HEADER = "Authorization";
	private static final String BEARER_PREFIX = "Bearer ";

	private final CookieManager cookieManager;
	private final JwtManager jwtManager;

	@Override
	protected boolean shouldNotFilter(HttpServletRequest request) throws ServletException {
		String requestURI = request.getRequestURI();

		List<String> excludePrefixes = List.of(
            // try) 여기에 추가해봤었음
		);

		return excludePrefixes.stream()
			.anyMatch(requestURI::startsWith);
	}
    ...

Cause

@RestControllerAdvice

GlobalExceptionHandler에 있던 @RestControllerAdvice의 문제였음

@RestControllerAdvice // 이거 주석 처리하면 작동함
public class GlobalExceptionHandler {
    ...
}

Solution

Swagger 버전 변경

// 변경전:
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.2.0'

// 변경후:
implementation 'org.springdoc:springdoc-openapi-starter-webmvc-ui:2.7.0'

profile
CS 메모장

0개의 댓글