📌 문제상황 현재 운영하고 있는 앱에서 로그인 관련 문제가 존재했다. 로그인을 할 때 세션 관련 문제가 존재했는데, 문제를 해결하고자 다양한 방법을 시도하고 있었다. 그 중 하나의 방법이 로그인 API 호출 시 요청에 세션이 담긴 쿠키가 존재하더라도 새로운 세션 및 쿠키를 발급해주는 코드였다. 그래서 로그인 API 호출 시 기존의 세션을 무효화(invalidate)하고 새롭게 세션을 발급해주고자 했다. 📌 해결방법 httpSession.invalidate(); 코드를 통해 기존의 세션을 무효화 하고, request.getSession()를 통해 새로운 세션을 생성하고자 했다. 하지만 세션이 생성되지 않았는데, 이는 getSession의 argument에 의한 차이로 생성되지 않았다. ▶️ request...
📌 문제상황 현재 SW마에스트로에서 개발한 앱에서 로그인 관련한 이슈가 다수 발생했다. 앱 실행했을 때 로그인 버튼이 안 나오거나, 세션이 만료되지 않았음에도 불구하고 앱을 껐다 키면 다시 로그인을 해야하는 문제가 있었다. 해당 문제를 해결하려고 하는 도중에 FE 개발자가 "쿠키에 아무것도 들어가지 않았는데 API가 호출이 된다."라는 말을 했다. 아마 클라이언트 단에서 쿠키를 캐싱하는 기능이 있나 했다... (이 부분에 대한 의문은 아직 풀지 못한 상태이다.) 일단 해당 현상을 재현하기 위해 Postman을 통해 Cookie에 아무것도 존재하지 않을 때 API를 호출했다. 그런데 이게 무슨 일인지, 세션을 발급해야 하는 API가 아님에도 불구하고 Cookie에 세션이 담겨 있는 것을 확인할 수 있었다...
문제 상황 로그인을 구현하는데 있어 인가(Authorization)를 위해 세션을 이용했다. 로컬에서 세션을 이용하는 경우 쿠키에 세션 정보가 저장되게 되는데, 나는 Secure 플래그를 SessionConfig에서 설정하지 않았음에도 불구하고 기본값인 false가 아닌 true가 출력됐다. Secure의 기본값은 false이다. 하단의 SessionConfig를 봤을 때, Secure에 대한 설정은 존재하지 않는다. @Configuration public class SessionConfig { @Bean public CookieSerializer cookieSerializer(){ DefaultCookieSerializer serializer = new DefaultCookieSerializer(); ..
프로젝트에서 인증(Authentication), 인가(Authorization)를 구현한 이후에는 Postman에서 아무런 설정 없이 API를 호출할 수 없을 것이다. 로그인 구현에 따른 세션 및 토큰 설정이 별도로 필요하기 때문이다. 필자는 Session을 이용한 소셜 로그인을 구현하여, 해당 방식에서 API를 호출하기 위해 Postman 설정 방법을 알아보고자 한다. 1️⃣ 소셜 로그인 진행 먼저 소셜 로그인 페이지에 들어가 로그인을 진행한다. 2️⃣ 발급된 Session 확인 이후 F12를 클릭하여, 발급받은 Session의 Value를 확인하자. 3️⃣ Postman에 Cookies 등록하기 우상단에 있는 Cookies를 클릭하자. 이후 위에서 확인한 Session의 Value를 아래와 같이 등록..