Spring

Security CORS 설정

쭈녁 2024. 3. 17. 02:35

 

 

사이드 프로젝트를 진행 중 프론트 담당자로부터 CORS를 열어달라는 요청이 들어왔다.

1. CORS(Cross Origin Resource Sharing)

  - Origin 의 위치가 다를 때 자원을 주고받을 수 있도록 하는 http 통신 프로토콜.

  - 프로토콜(https)+호스트(ip주소)+포트번호(8080) 의 조합

  - 클라이언트와 서버의 Origin 이 다를 때 CSRF와 XSS 등에 취약하다 때문에 / 특정 경로 / http 메서드 / 특정 해더 / 포트 에 대해 접근을 허용할 수 있다.

 

2. CORS 설정 방법

CORS를 허용하는 방법에는 크게 두 가지가 있다.

 

1. CorsFilter를 구현하여 Spring Security에서 관리하는 방법2. SpringFramwark 가 제공하는 MVC 기능을 활용하여 전역/ Controller 단에서 제어하는 방법

 

프론트 담당자들의 요청은 모든 api에 대해 CORS를 열어달라는 요청이었음으로

프로젝트에는 MVC기능을 활용한 전역으로 CORS를 제어하는 방식을 선택하였다.

 

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOriginPatterns("*")		//해당하는 주소에서의 요청만 접근가능
                .allowedMethods("*")			// 해당하는 메서드만 접근 가능
                .allowedHeaders("*")			// 해당 header를 가지고 있는 요청만 접근 가능
                .allowCredentials(true);		// 브라우저가 쿠키나 Authorization 헤더에 접근 가능한지 여부
    }
}

 

 

'Spring' 카테고리의 다른 글

서블릿 컨테이너, 애플리케이션 초기화  (1) 2024.04.20
공공데이터 Springboot로 파싱  (0) 2024.04.13
Security 인가(Authorization) 적용  (1) 2024.03.16
Mappstruct 사용  (0) 2024.03.11
SpringSecurity 프로젝트 적용  (0) 2024.03.03