세션타임아웃 기능 추가 후 로그아웃 시 에러 질문입니다.
- 작성자 :
- 꼬***자
- 작성일 :
- 2024-08-29 23:41:14
- 조회수 :
- 640
- 구분 :
- 운영환경 / 기타
- 진행상태 :
- 완료
Q
우선 참조 파일 등을 제공하지 못하는 상황이라 죄송합니다.
기존 EgovSpringSecurity Login/Logout Filter를 통해서 로그인, 로그아웃이 처리되고 있었습니다.
SessionTimeOut기능을 추가하기 위해 LoginFilter에서 session 객체에 setMaxInactiveInterval 메서드를 활용해 개별 세션시간을 설정 후 세션시간에 대한 정보를 session 객체에 담아서 사용하도록 개발했습니다.
JSP단에서 sessionScope를 활용해 셋팅한 시간정보를 가져와 sessionTimeOut시 자동으로 로그아웃 되도록 개발했습니다.
문제는 해당 로직을 추가하기전엔 잘 동작하던 로그아웃버튼이 제대로 동작하지 않고 있습니다.ㅠㅠ
디버깅을 찍어보니 로그아웃 버튼 클릭시 LogoutFilter에서 session.setAttribute(loginVo, "null") 처리하는 로직이 있던데 혹시 sessionTimeOut을 위한 시간 정보들을 session객체에 직접 셋팅해서 사용하면 session꼬이는 경우도 있을까요?
LogoutFilter에서 session != null 일 때 session을 invalidate 해봤지만 계속 오류가 발생하고 있습니다..
로그아웃 오류가 발생할 때 URL은 /j_spring_logout 을 타고 있네요..
혹시 session객체에 따로 속성을 저장해서 사용 시 문제가 생길 수 있다면 loginVo와 Mapping Class에 해당 시간정보에 대한 필드를 정의하고 loginVo 객체만을 사용해서 세션을 관리해야 하는걸까요?
참조 파일이 없고 글이 장황하여 답변이 어려우시겠지만 예상가는 부분이 있으시다면 답변해주시면 정말 감사하겠습니다.
참고로 개발환경에선 로그아웃이 제대로 동작하는데 운영환경에서는 오류가 발생하고 있네요.
기존 EgovSpringSecurity Login/Logout Filter를 통해서 로그인, 로그아웃이 처리되고 있었습니다.
SessionTimeOut기능을 추가하기 위해 LoginFilter에서 session 객체에 setMaxInactiveInterval 메서드를 활용해 개별 세션시간을 설정 후 세션시간에 대한 정보를 session 객체에 담아서 사용하도록 개발했습니다.
JSP단에서 sessionScope를 활용해 셋팅한 시간정보를 가져와 sessionTimeOut시 자동으로 로그아웃 되도록 개발했습니다.
문제는 해당 로직을 추가하기전엔 잘 동작하던 로그아웃버튼이 제대로 동작하지 않고 있습니다.ㅠㅠ
디버깅을 찍어보니 로그아웃 버튼 클릭시 LogoutFilter에서 session.setAttribute(loginVo, "null") 처리하는 로직이 있던데 혹시 sessionTimeOut을 위한 시간 정보들을 session객체에 직접 셋팅해서 사용하면 session꼬이는 경우도 있을까요?
LogoutFilter에서 session != null 일 때 session을 invalidate 해봤지만 계속 오류가 발생하고 있습니다..
로그아웃 오류가 발생할 때 URL은 /j_spring_logout 을 타고 있네요..
혹시 session객체에 따로 속성을 저장해서 사용 시 문제가 생길 수 있다면 loginVo와 Mapping Class에 해당 시간정보에 대한 필드를 정의하고 loginVo 객체만을 사용해서 세션을 관리해야 하는걸까요?
참조 파일이 없고 글이 장황하여 답변이 어려우시겠지만 예상가는 부분이 있으시다면 답변해주시면 정말 감사하겠습니다.
참고로 개발환경에선 로그아웃이 제대로 동작하는데 운영환경에서는 오류가 발생하고 있네요.
환경정보
-
- OS 정보 :
- 표준프레임워크 버전 :
- JDK(JRE) 정보 :
- WAS 정보 :
- DB 정보 :
- 기타 환경 정보 :
A
안녕하세요.
표준프레임워크 센터입니다.
개발환경에서는 정상적으로 동작하지만 운영환경에서만 오류가 발생한다면,
세션 관리 설정의 차이 때문일 가능성이 있으므로 해당 부분을 먼저 확인하여 보아야 할 것으로 보입니다.
참고로 로그인 세션 타임아웃 설정 및 남은 시간에 대한 관리 기능에 관련하여서는 해당 위키가이드에서 확인 가능합니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v4.2:sec:login_session_management
web.xml에서 서버의 세션 타임아웃을 설정하고
SessionTimeoutCookieFilter를 통하여 쿠키에 만료 예정시간(egovLatestServerTime), 서버현재시간(egovExpireSessionTime)을 설정하는 방식으로 구현되어 있으므로
참고 부탁 드립니다.
감사합니다.
표준프레임워크 센터입니다.
개발환경에서는 정상적으로 동작하지만 운영환경에서만 오류가 발생한다면,
세션 관리 설정의 차이 때문일 가능성이 있으므로 해당 부분을 먼저 확인하여 보아야 할 것으로 보입니다.
참고로 로그인 세션 타임아웃 설정 및 남은 시간에 대한 관리 기능에 관련하여서는 해당 위키가이드에서 확인 가능합니다.
https://www.egovframe.go.kr/wiki/doku.php?id=egovframework:com:v4.2:sec:login_session_management
web.xml에서 서버의 세션 타임아웃을 설정하고
SessionTimeoutCookieFilter를 통하여 쿠키에 만료 예정시간(egovLatestServerTime), 서버현재시간(egovExpireSessionTime)을 설정하는 방식으로 구현되어 있으므로
참고 부탁 드립니다.
감사합니다.