В каком фильтре Spring хранит доступный URL-адрес, прежде чем перенаправить на страницу входа? - PullRequest
2 голосов
/ 27 марта 2012

В безопасности Spring (3.0.6), если мы пытаемся получить доступ к странице и время сеанса истекает, мы переходим на страницу входа в систему, и после успешной аутентификации мы перенаправляемся на ту страницу, на которой мы пробовали получить доступ, прежде чем мы были приняты на страницу входа. Где в цепочке перехватчиков фильтра сохранен этот URL-адрес «последнего доступа»?

Я хочу изменить этот URL-адрес «последнего доступа» в конкретном случае, когда он перенаправляет на «/ exitUser». Как я могу это сделать?

1 Ответ

4 голосов
/ 27 марта 2012

Кэшированная копия входящего запроса (а не только URL) перед перенаправлением на страницу входа. ExceptionTranslationFilter понимает, что требуется вход в систему, и передает запрос настроенному экземпляру RequestCache. Базовое описание есть в справочном руководстве .

Вы можете получить доступ к SavedRequest, запросив его у RequestCache. По умолчанию он сохраняется в сеансе, поэтому создание HttpSessionRequestCache даст вам необходимые функциональные возможности. Вы также можете настроить RequestCache, если хотите, используя пространство имен .

Фактическое перенаправление, использующее сохраненный запрос, выполняется экземпляром AuthenticationSuccessHandler. Вы можете настроить это, если вы хотите изменить перенаправление для успешного входа в систему. Вы найдете больше об этом в руководстве, а также в предыдущих вопросах SO.

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