2016-10-24 5 views
2

でカスタマイズされたセッションタイムアウト.. 、それが正常に動作します。.. 私はいくつかの実行したいですセッションのタイムアウトが発生する前に、セッションのタイムアウトが発生するかどうかを決定する必要があります。 これはつまり.. セッションのパラメータをチェックして、セッションタイムアウトを選択したいこのタイムアウトは決して発生しません。.. セッションタイムアウトパラメータ/入力は、15分のweb.xmlに設定されているどのように春のセッションタイムアウトをカスタマイズするために、スプリング/セキュリティ

答えて

1

使用のHttpSessionListener

import javax.servlet.http.HttpSessionEvent; 
import javax.servlet.http.HttpSessionListener; 

public class SessionListener implements HttpSessionListener { 

    @Override 
    public void sessionCreated(HttpSessionEvent event) { 
     // .. event.getSession().getAttribute("xxxx") 
     event.getSession().setMaxInactiveInterval(5*60); 
    } 

    @Override 
    public void sessionDestroyed(HttpSessionEvent event) { 
     System.out.println("==== Session is destroyed ===="); 
    } 
} 

web.xml内のレジスタ

<web-app ...> 
    <listener> 
     <listener-class>yourpackage.SessionListener</listener-class> 
    </listener> 
</web-app> 

またはアプリケーションの初期化中

public class AppInitializer implements WebApplicationInitializer { 

//... 
    @Override 
    public void onStartup(ServletContext servletContext) throws ServletException { 
     super.onStartup(servletContext); 
     servletContext.addListener(new SessionListener()); 
    } 
//... 

} 
+0

ありがとう..私はセッションの前に間隔(setMaxInactiveInterval)をカスタマイズする必要がありますセッションタイムアウトのために破棄されています。作成中または破棄後ではありません。 そのようなものはありますか? –

+0

また、 setMaxInactiveInterval(5 * 60)を設定していない場合、web.xmlのデフォルトのタイムアウト(つまり15分)に従いますか? –

+0

@adarshabvその後、インターセプタを使用できます。http://stackoverflow.com/a/12084748/410677 – kuhajeyan

関連する問題