デフォルトですべて拒否するSpring Securityのセットアップを以下に示します(以下の例を参照)。デフォルトの deny all を変更したくありません。これは、セキュリティ構成の防御的な方法であり、良い方法と見なされているためです。明らかに、ユーザーが存在しないページにアクセスしたい場合、デフォルトではすべての戦略が拒否されるため、403 が返されます。ページが存在しない場合は結果 404 が必要で、ユーザーがアクセスを制限されている場合は 403 が必要です。この動作のために Spring Security を構成する方法はありますか?
例 :
<intercept-url pattern="/posts/remove" access="hasRole('ADMIN')" />
<intercept-url pattern="/posts/add" access="hasRole('EDITOR')" />
<intercept-url pattern="/posts" access="permitAll" />
<intercept-url pattern="/" access="permitAll" />
<!-- Default is access denied -->
<intercept-url pattern="/**" access="denyAll" />
</http>
ユーザーが要求する/something-that-not-exists
と、404 (403 ではない) が返されます。EDITOR ユーザーが要求する/posts/remove
と、403 が返されます。