Spring Security会话管理设置和IllegalStateException

时间:2010-01-26 06:35:49

标签: spring-security session-timeout

我正在尝试在Spring Security命名空间配置中添加<session-management>,以便在会话超时时提供与登录页面不同的消息。一旦我将其添加到我的配置中,它就会在我访问应用程序时开始抛出“IllegalStateException:在提交响应后无法创建会话”。

我正在使用Spring Security 3和Tomcat 6.这是我的配置:

<http>
    <intercept-url pattern="/go.htm" access="ROLE_RESPONDENT" />
    <intercept-url pattern="/complete.htm" access="ROLE_RESPONDENT" />                          
    <intercept-url pattern="/**" access="IS_AUTHENTICATED_ANONYMOUSLY" />
    <form-login login-processing-url="/j_spring_security_check" 
                login-page="/login.htm" 
                authentication-failure-url="/login.htm?error=true" 
                default-target-url="/go.htm"
    />      
    <anonymous/>
    <logout logout-success-url="/logout_message.htm"/>  
    <session-management invalid-session-url="/login.htm" />     

</http>

在我添加<session-management>行之前,一切正常。我错过了什么?

3 个答案:

答案 0 :(得分:1)

你可能会遇到这个错误:

https://jira.springsource.org/browse/SEC-1346

尝试使用最新版本(3.0.2.RELEASE)。

答案 1 :(得分:0)

这对我有用

<session-management invalid-session-url="/taac/login">
    <concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>

答案 2 :(得分:0)

可能在auto-config="true"代码中包含<http>属性有帮助,您可能会遗漏一些必需的过滤器或设置。