Configuração de gerenciamento da sessão de segurança da primavera e ilegalStateException
-
22-09-2019 - |
Pergunta
Estou tentando adicionar <session-management>
Na minha configuração de namespace de segurança da primavera, para que eu possa fornecer uma mensagem diferente da página de login quando a sessão se destaca. Assim que adiciono à minha configuração, ele começa a jogar "ilegalStateException: não pode criar uma sessão após a resposta" quando eu acessar o aplicativo.
Estou usando o Spring Security 3 e o Tomcat 6. Aqui está minha configuração:
<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>
Tudo funciona muito bem até eu adicionar no <session-management>
linha. o que estou perdendo?
Solução
Você provavelmente está acertando este bug:
https://jira.springsource.org/browse/sec-1346
Tente usar a versão atualizada (3.0.2.Release).
Outras dicas
Isso funciona para mim
<session-management invalid-session-url="/taac/login">
<concurrency-control max-sessions="1" error-if-maximum-exceeded="true" />
</session-management>
Talvez incluindo o auto-config="true"
atributo no <http>
A tag ajuda, você pode estar perdendo alguns filtros ou configurações necessários.