developer life/springboot
[spring boot] server.servlet.session.timeout 설정하기
노는개발자V
2024. 8. 21. 11:14
스프링 부트에서는 application 파일 설정으로 간단히 세션 타임아웃을 적용할 수 있다
1. application.yml, application.properties
server.servlet.session.timeout=600
기본설정단위는 초(s)이며 단위를 붙여서 10m, 900s와 같이 사용도 가능하다.
spring boot 2.x버전 이상에서 사용가능하며 1.x버전에서는 server.session.timeout로 사용해야 한다.
2. HttpSessionListener 이용하기
별도의 WAS 에 외부 톰캣을 만들어 사용할 경우 application 설정만으로 session timeout이 동작하지 않을 수 있다.
이 경우엔 별도의 listener를 만들어 session timeout이 동작하도록 해야한다.
SessionListener.java
public class SessionListener implements HttpSessionListener {
@Override
public void sessionCreated(HttpSessionEvent event) {
//세션 타임 아웃 4시간 적용
event.getSession().setMaxInactiveInterval(60 * 240);
}
@Override
public void sessionDestroyed(HttpSessionEvent event) {
}
}
WebAppConfig.java
@Configuration
public class WebAppConfig implements WebMvcConfigurer {
@Bean
public HttpSessionListener httpSessionListener(){
return new SessionListener();
}
}
온라인 타이머 사이트 vclock
내가 시간 설정을 테스트할때 주로 사용하는 사이트이다.
이 사이트에서는 내가 설정한 시간으로 타이머를 지정해 알람을 받을 수 있고 자명종과 스톱워치, 시계 기능도 제공하고 있다.