반응형

프론트 팀에서 CORS에러가 발생했다고 연락이 왔다.

항상 그냥 만들다가 나중에 추가하는 거 같은....

프로젝트를 할 때마다 항상 발생하는 CORS 에러이다...

이 CORS에러가 왜 발생하는지는 이 글을 읽는 사람들이라면 알고 있을 것이다.

간단하게 출처가 같지 않아서 발생하는 에러이다.

 

이전에는 CORS 에러가 발생할 때마다 항상 귀찮아서 컨트롤러 상단에

@CrossOrigin("*")

이렇게 Annotation을 추가했었다.

 

이 방법은 그냥 빠르게 임시 방편으로 사용했던 것 같고, 이번에는 이 에러를 초기에 한 번에 잡고 후에 NginX를 사용하면 이 구성을 뺄 수도 있기 때문에 Config를 만들어서 빼두었다.

 

방법은 어렵지 않았다.

우선 Configuration을 만들어두는 패키지에 당연히 이름은 상관없는 Configuration을 하나 만들고 WebMvcConfiguer를 implements한다.

 

@Configuration
public class WebConfig implements WebMvcConfigurer {

    @Override
    public void addCorsMappings(CorsRegistry registry) {
        registry.addMapping("/**")
                .allowedOrigins("*")
                .allowedMethods("*")
                .maxAge(6000);
    }
}

 

그리고 이렇게 addCorsMappings를 Overide한다.

 

addMapping은 어느 URL에 적용을 할 것인가?

allowedOrigins는 어느 ip의 요청에 적용을 할 것인가?

allowedMethods는 어느 메소드를 허용 할 것인가?(Ex GET, POST)

maxAge는 캐싱의 시간이다.

 

어차피 현재 작성한 CorsMapping은 개발 단계에서만 사용 할 것이기 때문에 모두 와일드카드로 작성했다.

아마 후에 NginX로 설정을 옮길 것 같고 그 때가 된다면 다시 어떻게 적용했는지 적도록 하겠다.

'블로그 개발 프로젝트' 카테고리의 다른 글

Swagger @ApiModelProperty에 example List  (0) 2023.07.28
Swagger Response  (0) 2023.07.28
JPA으로 Paging  (0) 2023.07.24
JPA TopBy  (0) 2023.07.24
@ManyToOne, @OneToMany  (0) 2023.07.24

+ Recent posts