Я реализовал систему выхода из системы входа в систему с безопасностью Spring 3.0.2, все хорошо, но для этой вещи: после того, как я добавил, что тег управления сеансами с атрибутом недопустимого URL сессии, на Spring выхода из системы будет всегда перенаправлять меня на недопустимом URL сессии вместо URL успеха выхода из системы (который он правильно сделал прежде).
Существует ли способ избежать этого поведения?
Это - моя конфигурация:
<http use-expressions="true" auto-config="true">
[...some intercept-url's...]
<form-login login-page="/login" authentication-failure-url="/login?error=true"
login-processing-url="/login-submit" default-target-url="/home"
always-use-default-target="true" />
<logout logout-success-url="/home?logout=true" logout-url="/login-logout" />
<session-management invalid-session-url="/home?invalid=true" />
</http>
Большое спасибо.
Не путайте атрибут logout-url в теге logout с атрибутом invalid-session-url
из управления сеансом.
Последний - это URL-адрес для выполнения действия выхода, а первый - это URL-адрес, на который перенаправляется при выходе из системы.
Другими словами, при создании кнопки выхода из системы URL для этой кнопки будет иметь значение logout-url
.
Теперь, когда выход завершен, Spring Security по умолчанию отобразит путь к корневому приложению основного приложения, то есть: http: // yourserver: yourport / yourwebapp /
. Этот путь переопределяется недопустимым URL-адресом сеанса
. Таким образом, после выхода вы будете перенаправлены туда.
Подводя итог, если вы не хотите запрашиваемого поведения, не используйте атрибут invalid-session-url
.
Надеюсь, это поможет.