Response에 Custom한 Header추가 하는 방법

tinyeye·2023년 4월 9일
0

스프링

목록 보기
10/10

문제

기존에 JWT토큰을 검증하는 필터에서 response.sendError()로 커스텀한 에러 메시지를 보내서 원하는 에러 코드를 보내는 코드가 EC2+NGINX 환경에서 잘 작동하지 않았음.

해결방법 고안

그렇다면 커스텀한 헤더를 하나 만들어서 그 헤더값을 가지고 토큰 만료 여부를 판별하게 하면 어떨까 생각

시도

  • JWT필터
ErrorResponse errorResponse = new ErrorResponse(ErrorCode.JWT_ACCESS_TOKEN_EXPIRED);

response.setHeader("RE-LOGIN",errorResponse.getErrorCode());
response.sendError(HttpStatus.UNAUTHORIZED.value());

하지만 클라이언트 측에서는 해당 헤더를 가져 올 수 없었음.
CORS관련 설정을 해주는 파일에서 해당 헤더를 노출해 주지 않았기 때문

해결

  • CORS관련 설정을 해주는 설정 파일
@Configuration
@EnableWebMvc
public class MvcConfig implements WebMvcConfigurer {


    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("URL")
                .allowedMethods("METHODS")
                .allowCredentials(true)
                .exposedHeaders("RE-LOGIN")
                .maxAge(3600); 
    }
}

.exposedHeaders("RE-LOGIN") 해당 코드를 추가해서 해결

profile
백엔드 개발자를 노리며!

0개의 댓글