spring boot에서 쿠키/세션 로그인 기능 구현시 다음과 같은 에러를 만났습니다
...HttpSession.getAttribute(String)" is null
분명히 다음과 같이 attribute를 제대로 설정했는데 왜그랬을까요?
HttpSession session = request.getSession(true);
session.setAttribute("LOGIN_MEMBER", 123);
이유는 다음과 같습니다. 제가 가진 특수한 상황 때문이였는데요.
- server : localhost:8080
- client : localhost:3000
- client는 server로 axios 요청을 함
위 상황은 여러가지 문제가 있었고 해결방안은 다음과 같습니다.
1) CORS 문제
크로스 도메인에 대응하여 spring boot에 다음과 같은 옵션을 줬습니다.
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.CorsRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**")
.allowCredentials(true)
.allowedHeaders("*")
.allowedOrigins("http://localhost:3000");
}
}
2) withCredential 문제
axios 전역변수에 다음과 같이 설정하여 헤더에 session id가 넘어가도록 설정하였습니다.
import axios from "axios";
axios.defaults.withCredentials = true;
이후 정상동작함을 확인할 수 있었습니다.
반응형
'Programming Language > Java & Scala' 카테고리의 다른 글
scala에러 Unable to make private java.nio.DirectByteBuffer 해결 방법 (0) | 2024.06.03 |
---|---|
현재 시간을 특정 포맷 yyyyMMdd HH:mm:ss 로 String 출력하기 (0) | 2022.09.14 |
실행 가능한 자바 jar 패키지 만들기(with gradle) (0) | 2021.05.25 |
현재 Unixtime 가져오기 in 자바 (0) | 2021.05.11 |
Math함수를 이용하여 랜덤 숫자 추출하기 (0) | 2021.05.11 |
자바와 스칼라 차이점 (1) | 2020.12.10 |