[Chapter 06] CORS 처리를 위한 방법 #48
Unanswered
Irisation23
asked this question in
Chapter 06. Building a Web Application Server
Replies: 2 comments
-
만약 서버로 스프링 MVC 프레임워크를 사용하고 있다면 3번이 제일 나아 보이고, 제시하신 방법 외에도 웹팩(webpack)의 경우 프록시 설정을 통해서 처리하는 방법도 있는 것으로 알고 있습니다. |
Beta Was this translation helpful? Give feedback.
0 replies
-
package com.douzon.smartlogistics.global.common.filter;
import java.io.IOException;
import javax.servlet.Filter;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.ServletRequest;
import javax.servlet.ServletResponse;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.core.Ordered;
import org.springframework.core.annotation.Order;
import org.springframework.stereotype.Component;
@Component
@Order(Ordered.HIGHEST_PRECEDENCE)
public class CorsFilter implements Filter {
@Override
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
throws IOException, ServletException {
HttpServletRequest request = (HttpServletRequest) servletRequest;
HttpServletResponse response = (HttpServletResponse) servletResponse;
response.setHeader("Access-Control-Allow-Origin", "http://localhost:3000");
response.setHeader("Access-Control-Allow-Credentials", "true");
response.setHeader("Access-Control-Allow-Methods","GET, POST, PATCH, PUT, DELETE");
response.setHeader("Access-Control-Max-Age", "3600");
response.setHeader("Access-Control-Allow-Headers",
"Origin, X-Requested-With, Content-Type, Accept, Authorization");
if("OPTIONS".equalsIgnoreCase(request.getMethod())) {
response.setStatus(HttpServletResponse.SC_OK);
}else {
filterChain.doFilter(servletRequest, servletResponse);
}
}
}
|
Beta Was this translation helpful? Give feedback.
0 replies
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Uh oh!
There was an error while loading. Please reload this page.
Uh oh!
There was an error while loading. Please reload this page.
-
CORS는 보통 프로젝트 초기에 설정되어 있고,
CORS가 설정 되어있다면 개발하는 우리는 무심코 지나가기 쉬운 개념이라 생각합니다.
책에서 소개하는 CORS 설정의 방법은 다음과 같습니다.
책에서 제시하는 CORS 처리방법은
WebMvcConfigurer
인터페이스의 메서드를 정의하여 사용하는 방법을 알려주고 있습니다.그러나, CORS를 처리하는 방법은 위에서 제시하는 하나의 방법만 있는 것은 아닙니다.
@CrossOrigin
을 사용하는 방법 (각 Controller에 달아 줌)WebMvcConfigurer
인터페이스의 메서드를 정의위의 방법 이외에 여러가지 방법을 기반으로 CORS를 처리할 수 있다고 생각합니다.
여기서 드는 의문이 있습니다.
과연 CORS를 처리하기 위해 가장 좋은 방법은 어떤 것이 있을까에 대한 고민이 있습니다.
그리고 그룹원들이 생각하는 CORS를 처리하기에 가장 좋은 방법은 어떤게 있을지 생각해보면 좋을 것 같습니다.
Beta Was this translation helpful? Give feedback.
All reactions