達成したいのは、セキュリティで保護されていないページ(例:/ index)ですが、認証されると、ログインしたユーザーを表示する認証オブジェクト。セキュリティフィルターチェーンを通過していないとき要求が春のセキュリティーチェーンを通過しない場合のアクセス認証オブジェクト
は春のドキュメントによると、認証オブジェクトは使用できません。
あなたが要求時にSecurityContextがコンテンツの内容を利用したい場合は、それがなければなりませんセキュリティフィルタチェーンを通過しました。そうしないと、SecurityContextHolderにデータが設定されず、内容がnullになります。
しかし、ページのセキュリティを無効にするには、セキュリティフィルタが無効になっている:
フィルタ=」none」に似て<http pattern="/index" security="none"/>
が、これも完全にその要求のパスのセキュリティフィルターチェーンを無効にします - ので、要求がアプリケーションで処理されると、Springセキュリティ機能は利用できなくなります。
これは、すべての認証さユーザーに許可を与えるので、私はまた、<intercept-url pattern="/index" access="permitAll" />
を使用することはできません。認証オブジェクトが見つからない場合、AbstractSecurityInterceptor
はAuthenticationCredentialsNotFoundException
を投げるので、
Spring Securityの初心者として、SecurityContextにアクセスできる非セキュアなページを作成するにはどうしたらいいですか?