본문 바로가기

Dev-/Spring

로그인 후 이전페이지로 되돌아가기 - Referer 헤더

일반적인 웹 사이트를 보면 "강제 로그인" 로직이 걸려있는 버튼이 있고, "단순 로그인"버튼이 있는데요.


"강제 로그인"의 경우, 

인터셉터에 매핑된 uri를 가져와, query의 유무에 따라 다시 조합해 "dest"라는 값으로 반환해줍니다.


"단순 로그인" 버튼의 경우, 

요청 uri를 강제로 막은 것이 아니기 때문에, 이전 페이지를 가져와야 할 듯 해 찾아보았습니다.




1. 첫번째 시도,,


JSTL의 EL을 사용해, 로그인 클릭하는 페이지의 uri를 가져오는 것이었습니다.


가령 http://localhost:8080/mani-examples/jsp/Forwarder.jsp?name=Mani 라면 아래를 사용해,


  javax.servlet.forward.request_uri = /mani-examples/jsp/Forwarder.jsp

  javax.servlet.forward.servlet_path = /jsp/Forwarder.jsp

  javax.servlet.forward.context_path = /mani-examples

  javax.servlet.forward.path_info = null

  javax.servlet.forward.query_string = name=Mani

[출처: forward된 페이지에서 request.getRequestURI 사용하기]


${requestScope['javax.servlet.forward.servlet_path']} 를 사용해 컨트롤러로 넘기는 것이죠.

--> 결론은 실패! 뭔가 한참 둘러가는 것 같고, 복잡해보여서 다른 방법을 찾아보았습니다.



2. 두번째 시도


좀 더 찾아보니,, 친철하게도 "Referer"라는 이름을 가진 헤더가 존재했습니다. 

이전 페이지에 대한 정보가 전부 들어있는 헤더인듯 합니다. (query까지 전부 다 나오네요.)


그래서 그냥 아래와 같이 세션으로 넘겨주어 사용했습니다.