使用Spring-Security3的session control,要先在web.xml做以下的設定:

<listener>
    <listener-class>
        org.springframework.web.context.ContextLoaderListener
    </listener-class>
</listener>
<listener>
    <listener-class>
        org.springframework.security.web.session.HttpSessionEventPublisher
    </listener-class>
</listener>
<session-config>
    <session-timeout>2</session-timeout> <!-- Unit: minutes -->
</session-config>

  很奇怪若把<listener-class>寫到同一個<listen>下會錯。OK,再來是設定Security-context.xml的內容:

<http use-expressions="true" auto-config="true">
    ...
    <session-management invalid-session-url="/timeout.html">
        <concurrency-control max-sessions="1" />
    </session-management>

</http>

  通常只需設定invalid-session-url屬性導向某個頁面就好,若希望同時間對同一個user帳號只允許一個session來連結,可以加入<concurrency-control max-sessions="1"/>的設定。

  有件事還解不出,就是invalid-session-url這屬性會蓋掉<logout>標籤的logout-success-url的屬性值,也就是當Logout成功,會被導到invalid-session-url屬性所指的URL。

arrow
arrow
    全站熱搜

    Jemmy 發表在 痞客邦 留言(0) 人氣()