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

 

내가 시간 설정을 테스트할때 주로 사용하는 사이트이다.
이 사이트에서는 내가 설정한 시간으로 타이머를 지정해 알람을 받을 수 있고 자명종과 스톱워치, 시계 기능도 제공하고 있다.