使用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。
留言列表