クラス RequestHeaderAuthenticationFilter

  • 実装されたすべてのインターフェース:
    javax.servlet.Filterorg.springframework.beans.factory.Awareorg.springframework.beans.factory.BeanNameAwareorg.springframework.beans.factory.DisposableBeanorg.springframework.beans.factory.InitializingBeanorg.springframework.context.ApplicationEventPublisherAwareorg.springframework.context.EnvironmentAwareorg.springframework.core.env.EnvironmentCapableorg.springframework.web.context.ServletContextAware

    public class RequestHeaderAuthenticationFilter
    extends AbstractPreAuthenticatedProcessingFilter
    CA Siteminder などのシステムで使用するために、リクエストヘッダーからユーザー名を取得する単純な事前認証済みフィルター。

    ほとんどの事前認証シナリオと同様に、このフィルターは認証を一切行わないため、外部認証システムを正しくセットアップすることが不可欠です。すべての保護は外部から提供されると想定されており、このフィルターが構成に不適切に含まれている場合、正しいヘッダー名を設定するだけでユーザーの身元を推測することができます。これはまた、一般的にフォームログインなどの他の Spring Security 認証メカニズムと組み合わせて使用すべきではないことを意味します。これは、外部システムをバイパスする手段があり、危険を伴うためです。

    プロパティ principalRequestHeader は、ユーザー名を含むリクエストヘッダーの名前です。Siteminder との互換性のため、デフォルトは "SM_USER" です。

    リクエストからヘッダーが欠落している場合、getPreAuthenticatedPrincipal は例外をスローします。exceptionIfHeaderMissing プロパティを設定することにより、この動作をオーバーライドできます。

    導入:
    2.0
    • コンストラクターの詳細

      • RequestHeaderAuthenticationFilter

        public RequestHeaderAuthenticationFilter()
    • メソッドの詳細

      • getPreAuthenticatedCredentials

        protected java.lang.Object getPreAuthenticatedCredentials​(javax.servlet.http.HttpServletRequest request)
        通常、資格情報は適用されませんが、credentialsRequestHeader が設定されている場合、これが読み取られて資格情報の値として使用されます。それ以外の場合は、ダミー値が使用されます。
        次で指定:
        クラス AbstractPreAuthenticatedProcessingFiltergetPreAuthenticatedCredentials 
      • setPrincipalRequestHeader

        public void setPrincipalRequestHeader​(java.lang.String principalRequestHeader)
      • setCredentialsRequestHeader

        public void setCredentialsRequestHeader​(java.lang.String credentialsRequestHeader)
      • setExceptionIfHeaderMissing

        public void setExceptionIfHeaderMissing​(boolean exceptionIfHeaderMissing)
        プリンシパルヘッダーがない場合に例外を発生させるかどうかを定義します。デフォルトは true です。
        パラメーター:
        exceptionIfHeaderMissing - false に設定すると、デフォルトの動作が上書きされ、ヘッダーが見つからない場合にリクエストを続行できます。