
Spring 프로젝트를 EC2에 백그라운드로 실행 시킨 후 클라이언트 요청시 Cors 오류가 발생
When allowCredentials is true, allowedOrigins cannot contain the special value "*" since that cannot be set on the "Access-Control-Allow-Origin" response header. To allow credentials to a set of origins, list them explicitly or consider using "allowedOriginPatterns" instead.
위의 오류를 번역을 해보면
"AllowCredentials가 true인 경우 allowedOrigins는 "Access-Control-Allow-Origin" 응답 헤더에 설정할 수 없는 특수 값 "*"를 포함할 수 없습니다. 원본 집합에 자격 증명을 허용하려면 명시적으로 나열하거나 대신 "allowedOriginPatterns" 사용을 고려하세요."
spring에서 cors를 처리해주었는데 이때 .addAllOrigin("*")으로 모든 경로를 열어주었다.
문제는 addAllOrigin과 .allowCredentials(true)를 같이 사용할 수 없다.
addAllOrigin("") 대신 .addAllOriginPatterns("")를 사용
그럼 addAllOrigin("") 과 .addAllOriginPatterns("") 차이점은 뭘까?
간단하게 찾아보니 아래와 같은 다른점이 있었다!
addAllOrigin("*"): 이 메서드는 모든 출처를 허용하는 데 사용됩니다. 즉, 어떤 도메인이든 요청을 보낼 수 있도록 CORS를 허용합니다. 하지만 이는 모든 출처에 대한 접근을 허용하는 것이기 때문에 보안적인 측면에서 권장되지 않을 수 있습니다.
.addAllOriginPatterns("*"): 이 메서드는 와일드카드를 사용하여 출처 패턴을 지정하는 데 사용됩니다. 이것은 addAllOrigin("*")와 다르게, 출처 패턴을 명시적으로 나타내는 것이기 때문에 좀 더 명확한 제어가 가능합니다. 예를 들어, 다른 도메인들 중에서 특정 패턴에 맞는 출처들만을 허용하고자 할 때 유용합니다.
