인프런 커뮤니티 질문&답변
Ajax방식에서 SavedRequest 가능여부
작성
·
227
0
안녕하세요 강사님, 강의듣다가 궁금한게 생겨서 문의드립니다.
폼 로그인 방식에는 successHandler에 RequestCache를 통해 미인증 사용자가 접근했던 정보로 리다이렉트 했었는데
Ajax 통신에서는 success블럭에 window.location을 통해 이동하는 걸로 보여집니다. (초반엔 "/"였다가 19:07 에는 "/messages"로 변경되어있습니다.)
REST 환경이 아니라 해당 예시처럼 Ajax 통신 시 RequestCache 이용 가능한지 궁금합니다.
답변 1
2
정수원
지식공유자
네
RequestCache 는 인증 이전의 정보를 담고 있는 객체이고 이것을 세션에 담고 있다가 꺼내어 참조하는 방식입니다
Ajax 방식으로 통신하더라도 이 원리는 동일하게 적용할 수 있습니다
인증 성공 핸들러에서 RequestCache 에 담긴 리다이렉트 정보를 response 에 담아서 클라이언트로 전달하고 Ajax success 블럭에서 전달된 정보를 활용하면 될 것 같습니다
참고로 폼 인증과 Ajax 인증은 세션방식으로 인증을 진행할 경우 요청과 응답의 형태가 달라지지만 스프링 시큐리티에서 인증을 처리하는 원리와 흐름은 동일하다고 보시면 됩니다다
흔히 Rest 방식으로 세션없이 토큰으로만 인증을 진행할 경우 RequestCache 는 사용할 수 없습니다
왜냐하면 RequestCache 는 세션에 저장되기 때문입니다
감사합니다




