Tomcat 5.5.26 にデプロイされた webapp で spring と acegi を使用しています。
ユーザーが 404 ページにログインしているかどうかを確認して、ログインしている場合は名前を表示し、そうでない場合はログイン リンクを表示できるようにします。
REQUEST ディスパッチャーのフィルターに HttpSessionContextIntegrationFilter があります。ERRORディスパッチャーにもあります。
コード パスは、リクエストが私のアプリに入り、REQUEST ディスパッチャーを介して、既に適用されていることを記録する HttpSessionContextIntegrationFilter に到達し、ユーザー コンテキストを設定してからフィルター チェーンを続行し、ユーザー コンテキストをクリアするように見えます。その後、ERROR ディスパッチャーを下りますが、HttpSessionContextIntegrationFilter はこの要求に対して既に実行されているため何もしません。したがって、404 ページに到達すると、コンテキストで認証が行われません (出し入れしないでください。