SpringBoot 세션타임 관리하는 방법
SpringBoot + JPA 방식으로 개발을 하고 있는 중인데
로그인 세션 시간을 늘려달라는 주문이 들어왔다.
구글링을 하던중에 application.properties 파일에
server.session.timeout=(설정시간) 이렇게 설정하면 된다는
글이 있었다. 시도해본 결과 세션타임 적용이 안되는 것이었다.
조금 더 검색을 해본결과 잘 되는 방법이 있어서 적어본다.
일단 Application.java 파일에
@Bean
public HttpSessionListener httpSessionListener(){
return new SessionListener();
}
소스를 추가해준다.
그리고 클래스를 하나만든다.
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import javax.servlet.http.HttpSessionEvent;
import javax.servlet.http.HttpSessionListener;
public class SessionListener implements HttpSessionListener {
private Logger log = LoggerFactory.getLogger(this.getClass());
@Override
public void sessionCreated(HttpSessionEvent se) {
se.getSession().setMaxInactiveInterval(60*60); //세션만료60분
}
@Override
public void sessionDestroyed(HttpSessionEvent se) {
}
}
여기선 SessionListener 클래스를 만들었다. 클래스 명은 알아서 만들면되는것!!
이렇게 하고 톰캣을 리스타트 해줬더니 아주 잘 동작한다.