인증이 되어있지 않은 사용자는 스프링 시큐리티의 필터링에 걸려 로그인 페이지로 향하게 된다. 나의 경우 처음에는 로그인을 성공했을 때 핸들러를 통해(SimpleUrlAuthenticationSuccessHandler를 상속받아 작성) 메인페이지로 돌아가게끔 URL을 지정하였다.


그렇다면 메인페이지말고 내가 로그인 페이지로 넘어가기전에 요청했었던 url로 넘어가고 싶다면 어떻게 해야 할까?


보통 다른 방법들을 찾아보았을 때 login페이지 컨트롤러에서 Session 값을 넣거나 하는 작업을 하는 것들을 보았는데, 사실 우리는 그럴필요가 없다. 



레퍼런스에서 발견한 내용인데 두번째 문단을 읽어보면 인증전의 요청을 세션에 저장하고 있다고 얘기한다.

그리고 세션에 저장되어 있는 속성의 이름은 SPRING_SECURITY_SAVED_REQUEST 이다. 그렇다면 이제 로그인을 성공했을 때 핸들러에서는 다음과 같이 작업을 하면 될것이다.




또 다른 방법으로는 위의 글에서 언급한바와 같이 핸들러를 작성할 때 SavedRequestAwareAuthenticationSuccessHandler

를 상속받아 사용할수도 있는 것 같다.




+ Recent posts