일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- application.yml
- foreignkey
- 검색
- 추후정리
- appspec
- AuthenticationEntryPoint
- 메소드명
- EC2
- querydsl
- WeNews
- 예약
- 참조키
- 적용우선순위
- 컨테이너실행
- ㅔㄴ션
- docker명령어
- 네이티브쿼리
- 2 > /dev/null
- 커밋메세지수정
- 서브쿼리
- MySQL
- 포트
- subquery
- 테스트
- Query
- appspec.yml
- 테스트메소드
- 외부키
- ubuntu
- 메세지수정
- Today
- Total
제뉴어리의 모든것
java.lang.IllegalArgumentException: 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 expl.. 본문
java.lang.IllegalArgumentException: 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 expl..
제뉴어리맨 2022. 10. 31. 02:56상황
EC2에 배포된 백엔드 서버에
클라이언트가 요청을 하였을때 발생하는 에러
에러 메세지
java.lang.IllegalArgumentException: 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.
원인
Spring Security의 CORS 설정이 잘못 되어 있었다.
Security에서 CORS 설정시
.addAllOrigin("*") 과 .allowCrededentials(true) 를 같이 쓸 수 없다.
allowCredential 이 true 라면 “Access-Control-Allow-Origin” 응답 헤더헤더를 설정 할 수 없기 때문에 특수 값인 "*"를 사용 못하는 것...
해결 방법
해결방법은 특정 주소만 허락하거나, addAllOrigin("*") 대신 .addAllOriginPatterns("*")를 사용
아래는 Spring Security의 Cors 설정을 해주는 객체의 설정 내용이다.
해당 메소드에서 리턴하는 CorsConfigurationSource를 SecurityBuilder에 apply() 메소드로 등록하면 된다.
CorsConfigurationSource corsConfigurationSource() {
CorsConfiguration configuration = new CorsConfiguration();
// configuration.setAllowedOrigins(Arrays.asList(clientUrl));
// configuration.setAllowedMethods(Arrays.asList("*"));
configuration.addAllowedOriginPattern("*");
configuration.addAllowedHeader("*");
configuration.addAllowedMethod("*");
configuration.setAllowCredentials(true);
UrlBasedCorsConfigurationSource source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", configuration);
return source;
}
결론
CORS 어렵다.