Я использую spring и acegi в веб-приложении, развернутом в tomcat 5.5.26.
Я хочу посмотреть, вошел ли пользователь на страницу 404, чтобы мы могли показать его имя, если оно вошло, и ссылку для входа в противном случае.
У меня есть HttpSessionContextIntegrationFilter в фильтрах диспетчера REQUEST. У меня это тоже есть в диспетчере ОШИБОК.
Путь к коду выглядит так, что запрос поступает в мое приложение через диспетчер REQUEST в HttpSessionContextIntegrationFilter, который записывает, что он уже применен, устанавливает пользовательский контекст, затем продолжает цепочку фильтров и затем очищает пользовательский контекст. Затем он пробивается вниз по диспетчеру ERROR, но HttpSessionContextIntegrationFilter ничего не делает, потому что он уже был запущен для этого запроса, поэтому, когда он попадает на страницу 404, в контексте отсутствует аутентификация (как было очищено на выход) и не ставить обратно.