spring 3.1.1 と spring security 3.1.0 を使用しています。<intercept-url pattern="..." access="..."/>
エントリで明示的に構成されていないすべての http 要求が特定の方法で処理されるというポリシーを適用したいと考えています。構成に一致するリクエストについては、<intercept-url/>
一般的な役割ベースのアクセス決定を使用したいと考えています。ただし、一致しない要求については、404 (見つかりません) (または 403/禁止) で応答したいと考えています。私と他のチーム メンバーが、新しいエンドポイントのスプリング セキュリティと関連するロールを明示的に構成することを強制されるように、これを行いたいと考えています。
私はもともと<intercept-url pattern="/**" access="denyAll"/>
、ラストとして使用できると思ってintercept-url
いました。そのスプリングは私が望んでいたことをしてくれます。この手法は、ユーザーが既に認証されている場合に機能しますが、認証されていない/匿名のユーザーにとっては少し奇妙です。匿名ユーザーの場合、Spring は ( でExceptionTranslationFilter
) ユーザーが匿名であることを検出し、次のような要求が処理されると認証プロセスを開始し/missingResource
ます。通常、これは、ユーザーがログイン フォームにリダイレクトされ、ログイン後に にリダイレクトされることを意味します/missingResource
。そのため、ユーザーは 404 (見つかりません) ページを表示するためにログインする必要があります。
最終的に を削除し、に一致しないリクエストに対してintercept-url pattern="/**" access="denyAll"/>
実行して 404 で応答するカスタム フィルターを作成しましたが、少し複雑に思えました。より良い、またはより簡単な方法はありますか?after="FILTER_SECURITY_INTERCEPTOR"
FilterSecurityInterceptor