Немедленный вход после выхода из системы вызывает перенаправление на домашнюю страницу - PullRequest
1 голос
/ 11 июня 2011

У меня общий экран входа и выхода. Когда я выхожу после входа ... я захожу на страницу входа. Поведение Spring Security по умолчанию делает сеанс недействительным при выходе из системы, поэтому, если я пытаюсь войти в систему с помощью того же экрана, я перенаправляюсь на домашнюю страницу, поскольку в этот момент сеанс недоступен. Желаемое поведение должно быть в состоянии войти сразу после выхода из системы, что не происходит из-за аннулирования сеанса

<http use-expressions="true" access-denied-page="/access-denied">
    <intercept-url pattern="/secured/user/sign-up" access="hasAnyRole('ROLE_USER','ROLE_ANONYMOUS')" />
    <intercept-url pattern="/secured/user/sign-in" access="hasRole('ROLE_ANONYMOUS')" />
    <intercept-url pattern="/secured/**" requires-channel="https" />
    <intercept-url pattern="/user/dashboard/**" access="hasAnyRole('ROLE_IC')" />
    <intercept-url pattern="/**" access="permitAll"
        requires-channel="http" />
    <form-login login-page="/secured/user/sign-in" 
        authentication-success-handler-ref="authenticationSuccessHandler"
        authentication-failure-url="/secured/user/sign-in" />
    <logout logout-success-url="/secured/user/sign-in?loggedout=true"
        logout-url="/secured/logout"/>
    <security:session-management
        session-fixation-protection="none">
    </security:session-management>
</http>

Если вы обратитесь к xml, вы увидите, что /secured/user/sign-in используется как для входа, так и для выхода из системы

Как я могу решить эту проблему?

Ответы [ 2 ]

0 голосов
/ 28 июня 2011

Мне удалось обойти эту проблему, используя invalidate-session="false"

0 голосов
/ 15 июня 2011

Я думаю, что это "пока" решение.

Вы можете:

  1. Объявите свой собственный HttpSessionEventPublisher в своем web.xml:

    <listener>
        <listener-class>org.yourcompany.MyHttpSessionEventPublisher</listener-class>
    </listener>
    
  2. В HttpSessionEventPublisher возьмите HttpSessionDestroyedEvent и не позволяйте пружине лишить законной силы видения.

Я не уверен, что это «правильное» решение, но оно должно работать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...