Аутентификация ACEGI доступна в обработчике ошибок Tomcat 404

StackOverflow https://stackoverflow.com/questions/546447

Вопрос

Я использую Spring и acegi в веб-приложении, развернутом в Tomcat 5.5.26.

Я хочу узнать, вошел ли пользователь на страницу 404, чтобы мы могли показать его имя, если он вошел в систему, и ссылку для входа в противном случае.

У меня есть HttpSessionContextIntegrationFilter в фильтрах диспетчера ЗАПРОСОВ.У меня тоже в диспетчере ОШИБКА.

Путь кода показывает, что запрос поступает в мое приложение через диспетчер REQUEST к HttpSessionContextIntegrationFilter, который записывает, что он уже был применен, устанавливает пользовательский контекст, затем продолжает цепочку фильтров, а затем очищает пользовательский контекст.Затем он проходит через диспетчер ERROR, но HttpSessionContextIntegrationFilter ничего не делает, поскольку он уже был запущен для этого запроса, поэтому, когда он попадает на страницу 404, аутентификация в контексте отсутствует (поскольку она была очищена в выход) и не вставить обратно.

Это было полезно?

Решение

Кажется, это потому, что мы использовали acegi 1.0.3.

Ответом является обновление до acegi 1.0.7.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top