2

web.xml で宣言された tomcat セッションの有効期限が切れたときに、Spring で wicket を実行し、Spring Security を使用しています。

<session-config>
    <session-timeout>1</session-timeout>
</session-config>

フィルターを使用してこのイベントをキャッチしたい (既存の httpSession または Session をオーバーライドしない) spring を使用してそれを達成するにはどうすればよいですか?

10倍

4

1 に答える 1

7

これを実現するには、リスナー クラスを使用できます。次のようにリスナー コンポーネントを定義します。

@Component
public class AppLogoutListener implements
        ApplicationListener<SessionDestroyedEvent> {


    @Override
    public void onApplicationEvent(SessionDestroyedEvent event) {
        // from event you can obtain SecurityContexts to work with


    }

}

web.xml でセッション イベント パブリッシャーを定義する必要があります。

    <listener>
        <listener-class>org.springframework.security.web.session.HttpSessionEventPublisher</listener-class>
    </listener>

ここではHttpSessionEventPublisher、セッションが作成されて期限切れになるたびに、セッション ライフ サイクル イベントがパブリッシュされます。

于 2013-09-03T10:37:02.780 に答える