본문 바로가기
WAS(Web Application Server)/톰캣(Tomcat)

[톰캣 8.5] 정적 리소스에 CORS 필터가 적용되지 않을 때

by 연구자 공학코드 2024. 11. 29.

공지사항

  1. 제가 운영하는 네이버 카페 개발자 커뮤니티 코어큐브(https://cafe.naver.com/ewsncube)에 가입하시면 컴퓨터 관련 학습 자료와 질의응답을 제공받으실 수 있습니다.

728x90
반응형

현상

스프링 프레임워크로 웹 기반 백엔드 시스템을 배포 중에 운영 환경에서 정적 리소스에 CORS 필터가 적용되지 않는 것을 확인하였다. 스프링 프레임워크로 개발한 프로그램을 톰캣에 탑재하여 배포하는 경우에 정적 리소스는 작성한 CORS 필터를 거치지 않기 때문에 발생한 이슈였다.

해결 방법

톰캣의 web.xml에 아래와 같이 CORS 필터를 설정하면 정적 리소스에도 CORS 필터가 동작한다.

 <filter>
    <filter-name>corsFilter</filter-name>
    <filter-class>org.apache.catalina.filters.CorsFilter</filter-class>
        <init-param>
                <param-name>cors.allowed.origins</param-name>
                <param-value>*</param-value>
        </init-param>
        <init-param>
                <param-name>cors.allowed.methods</param-name>
                <param-value>GET,POST,PUT,DELETE</param-value>
        </init-param>
        <init-param>
                <param-name>cors.allowed.headers</param-name>
                <param-value>*</param-value>
        </init-param>
        <init-param>
                <param-name>cors.support.credentials</param-name>
                <param-value>true</param-value>
        </init-param>
        <init-param>
                <param-name>cors.preflight.maxage</param-name>
                <param-value>3600</param-value>
        </init-param>
  </filter>
  
  <filter-mapping>
    <filter-name>corsFilter</filter-name>
    <url-pattern>*</url-pattern>
  </filter-mapping>

참고문서

  1. "Tomcat8.5 + SpringBoot CORS 문제 해결", 오늘의개발부, 2021년 9월 10일. @원문보기
  2. "How to enable CORS tomcat 8.5 filter to access static files?", domenico, 스택오버플로우, 2019년 5월 31일. @원문보기

 

728x90
반응형

댓글