본문 바로가기
IT

SpringBoot 세션타임 관리하는 방법

by sdragoon 2018. 2. 8.
반응형

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 클래스를 만들었다. 클래스 명은 알아서 만들면되는것!!

 

이렇게 하고 톰캣을 리스타트 해줬더니 아주 잘 동작한다.