뷰랑 스프링부트로 프로젝트를 하고 있었는데 로그인해서 세션을 설정해놓고
다른 곳에서 세션을 부르는데 계속 null로 불러와지는 문제가 발생했다.
분명 세션도 제대로 출력되는 거 확인했고 설정하자마자 다른 컨트롤러에서 세션을 불러왔는데 널이 뜬다..
인터넷에서 방법을 찾아봤더니 CROS 문제라고 해서
WebConfig에
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedHeaders("*")
.allowedOrigins("http://localhost:8080");
}
이렇게 값을 줬고
vuex에는
axios.defaults.withCredentials = true;
이 코드를 주었다.
이 설정은 axios를 사용해서 HTTP 요청을 보낼 때 브라우저가 쿠키를 자동으로 포함해주는 역할을 한다.
이렇게 하고 보냈더니
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.
에러가 발생했다.
해석해보니 *를 포함하지 말라는데... 인터넷 찾아보니 스프링 부트에서
allowCredentials(true) 얘랑 allowedOrigins("") 얘가 동시사용이 불가능하게 바뀌었다고 했다.
그래서 allowedOriginsPatterns("")를 사용하라고 해서 바꿔서 넣었는데도 유지되는 에러코드...
어디선가 분명 *를 사용하고 있음이 분명하다 했더니
@RestController
@RequestMapping("/user")
@CrossOrigin("*")
public class UserController {
컨트롤러에서 모든 요청을 봐주고있었다....
이거 못찾아서 지금 2시간 날리고 글을 작성하고 있다....
이제 제대로 세션을 생성하고 찾는다.... 흑
'오류해결' 카테고리의 다른 글
인텔리제이 테스트 에러(Execution failed for task ':test'.) (0) | 2023.06.27 |
---|---|
You may have an infinite update loop in a component render function.(무한루프) (0) | 2023.05.25 |
Solve ERR_BLOCKED_BY_CLIENT이 발생했을 때 (0) | 2023.05.19 |
vue랑 스프링부트 연동하는데 스프링에서 null로 받는 에러 (0) | 2023.05.16 |