본문 바로가기
웹개발/스프링 · 자바 · 코틀린

세션 타임아웃 처리 - polling 이 있는 경우

by place-g 2025. 2. 28.
반응형

문제

기본적으로 WAS, 프레임워크가 세션 타임아웃을 처리해준다.

그러나 polling 하는 기능이 있다면

세션은 계속 연장 될 것이고, 타임아웃은 발생하지 않는다.

 

해결방안

1. JWT를 사용하여 만료시간을 가지고 타임아웃 처리

  - polling api가 아닌 경우에만 JWT access token 을 갱신하는 방법

 

2. 세션 또는 별도 공간에 별도 시간으로 체크

  - 나는 별도 필터를 만들어서 시큐리티 컨텍스트에 accessTime이라는 변수를 넣어두고 해당 변수값으로 체크하였음

    1번과 마찬가지로 polling api가 아닌 경우에만 accessTime을 갱신하고, 필터에 진입할 때 accessTime과 현재 시간을 비교하여 타임아웃을 처리하였음

 

더보기

- authentication details에 들어가는 VO에 accessTime을 추가
- sessionTimeoutCheckFilter를 추가하여 AIP 요청시마다 accessTime을 꺼내오고, 다시 업데이트 처리함
- polling api 일 때는 업데이트 하지 않음 (세션 타임아웃에서 배제됨)

- sessionTimeoutCheckFilter에서 accessTime 을 꺼내올 때, 현재시간과 비교하여 타임아웃 여부를 체크

 

반응형