получение URL-адреса в случае сбоя аутентификации

В подключаемом модуле Grails acegi можно указать свойство authenticationFailureUrl в SecurityConfig.

Есть ли способ получить URL-адрес, вызвавший сбой аутентификации в рамках authenticationFailureUrl?

Это не так просто, как просто получить запрос или просмотреть параметры. Если происходит сбой аутентификации, вы перенаправляетесь на authenticationFailureUrl, поэтому URL-адрес запроса в этот момент — это authenticationFailureUrl, а не URL-адрес, вызвавший сбой аутентификации.

В моем случае я установил authenticationFailureUrl как метод контроллера - глядя на все в отладчике, для меня нет очевидного решения....

Спасибо заранее.


person hvgotcodes    schedule 28.06.2010    source источник


Ответы (2)


SavedRequest представляющий исходный запрос, хранится как атрибут сеанса с именем, заданным константой DefaultSavedRequest.SPRING_SECURITY_SAVED_REQUEST_KEY (или AbstractProcessingFilter.SPRING_SECURITY_SAVED_REQUEST_KEY в версиях до 3.0).

person axtavt    schedule 28.06.2010

Это может помочь другим, работающим с Spring Security 3.0.0. В СС 3.0.3

AbstractProcessingFilter устарел, и в DefaultSavedRequest нет константы SPRING_SECURITY_SAVED_REQUEST_KEY. Таким образом, вы можете получить это:

SavedRequest savedRequest = (SavedRequest) session.getAttribute(WebAttributes.SAVED_REQUEST);     

Ссылка: Spring Security: как получить начальный целевой URL-адрес

person Abhi    schedule 08.06.2011