Logout / Tempo limite de sessão com segurança de primavera

Estou usando o spring / spring-security 3.1 e quero tomar alguma ação sempre que o usuário fizer logout (ou se a sessão tiver expirado). Eu consegui fazer a ação para o logout, mas para o tempo limite da sessão, não consigo fazê-lo funcionar.

No web.xml eu só tenho o ContextLoaderListener especificado (pode este ser o problema?) E, claro, o DelegatingFilterProxy.

Eu uso a configuração automática assim.

    <security:http auto-config="false" use-expressions="false">
    <security:intercept-url pattern="/dialog/*"
        access="ROLE_USERS" />
    <security:intercept-url pattern="/boa/*"
        access="ROLE-USERS" />
    <security:intercept-url pattern="/*.html"
        access="ROLE-USERS" />

    <security:form-login login-page="/auth/login.html"
        default-target-url="/index.html" />
    <security:logout logout-url="/logout"
         invalidate-session="true"
        delete-cookies="JSESSIONID" success-handler-ref="logoutHandler" />
</security:http>

<bean id="logoutHandler" class="com.bla.bla.bla.LogoutHandler">
    <property name="logoutUrl" value="/auth/logout.html"/>
</bean>

O manipulador de logout é chamado quando o usuário clica em logout, o que fará algumas chamadas para um banco de dados.

Mas como faço para lidar com o tempo limite da sessão?

Uma maneira de lidar com isso seria injetar o nome de usuário na sessão quando o usuário fizer login e, em seguida, usar um httpsessionlistener comum e fazer a mesma coisa no tempo limite da sessão.

Existe uma maneira semelhante com a segurança de primavera, de modo que quando a primavera descobre que a sessão é o tempo limite, eu posso ligar lá, acessar a autenticação e obter o UserDetails de lá e fazer a limpeza.