クラス RequestHeaderAuthenticationFilter
java.lang.ObjectSE
org.springframework.web.filter.GenericFilterBean
org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter
org.springframework.security.web.authentication.preauth.RequestHeaderAuthenticationFilter
- 実装されたすべてのインターフェース:
jakarta.servlet.Filter
、org.springframework.beans.factory.Aware
、org.springframework.beans.factory.BeanNameAware
、org.springframework.beans.factory.DisposableBean
、org.springframework.beans.factory.InitializingBean
、org.springframework.context.ApplicationEventPublisherAware
、org.springframework.context.EnvironmentAware
、org.springframework.core.env.EnvironmentCapable
、org.springframework.web.context.ServletContextAware
CA Siteminder などのシステムで使用するために、リクエストヘッダーからユーザー名を取得する単純な事前認証済みフィルター。
ほとんどの事前認証シナリオと同様に、このフィルターは認証を一切行わないため、外部認証システムを正しくセットアップすることが不可欠です。すべての保護は外部から提供されると想定されており、このフィルターが構成に不適切に含まれている場合、正しいヘッダー名を設定するだけでユーザーの身元を推測することができます。これはまた、一般的にフォームログインなどの他の Spring Security 認証メカニズムと組み合わせて使用すべきではないことを意味します。これは、外部システムをバイパスする手段があり、危険を伴うためです。
プロパティ principalRequestHeader
は、ユーザー名を含むリクエストヘッダーの名前です。Siteminder との互換性のため、デフォルトは "SM_USER" です。
リクエストからヘッダーが欠落している場合、getPreAuthenticatedPrincipal
は例外をスローします。exceptionIfHeaderMissing
プロパティを設定することにより、この動作をオーバーライドできます。
- 導入:
- 2.0
フィールドサマリー
クラス org.springframework.web.filter.GenericFilterBean から継承されたフィールド
logger
コンストラクターのサマリー
コンストラクターメソッドのサマリー
修飾子と型メソッド説明protected ObjectSE
getPreAuthenticatedCredentials
(jakarta.servlet.http.HttpServletRequest request) 通常、資格情報は適用されませんが、credentialsRequestHeader
が設定されている場合、これが読み取られて資格情報の値として使用されます。protected ObjectSE
getPreAuthenticatedPrincipal
(jakarta.servlet.http.HttpServletRequest request) リクエストからprincipalRequestHeader
によって指定されたヘッダーを読み取り、返します。void
setCredentialsRequestHeader
(StringSE credentialsRequestHeader) void
setExceptionIfHeaderMissing
(boolean exceptionIfHeaderMissing) プリンシパルヘッダーがない場合に例外を発生させるかどうかを定義します。void
setPrincipalRequestHeader
(StringSE principalRequestHeader) クラス org.springframework.security.web.authentication.preauth.AbstractPreAuthenticatedProcessingFilter から継承されたメソッド
afterPropertiesSet, doFilter, getAuthenticationDetailsSource, principalChanged, setApplicationEventPublisher, setAuthenticationDetailsSource, setAuthenticationFailureHandler, setAuthenticationManager, setAuthenticationSuccessHandler, setCheckForPrincipalChanges, setContinueFilterChainOnUnsuccessfulAuthentication, setInvalidateSessionOnPrincipalChange, setRequiresAuthenticationRequestMatcher, setSecurityContextHolderStrategy, setSecurityContextRepository, successfulAuthentication, unsuccessfulAuthentication
クラス org.springframework.web.filter.GenericFilterBean から継承されたメソッド
addRequiredProperty, createEnvironment, destroy, getEnvironment, getFilterConfig, getFilterName, getServletContext, init, initBeanWrapper, initFilterBean, setBeanName, setEnvironment, setServletContext
コンストラクターの詳細
RequestHeaderAuthenticationFilter
public RequestHeaderAuthenticationFilter()
メソッドの詳細
getPreAuthenticatedPrincipal
リクエストからprincipalRequestHeader
によって指定されたヘッダーを読み取り、返します。- 次で指定:
- クラス
AbstractPreAuthenticatedProcessingFilter
のgetPreAuthenticatedPrincipal
- 例外:
PreAuthenticatedCredentialsNotFoundException
- ヘッダーが欠落しており、exceptionIfHeaderMissing
がtrue
に設定されている場合
getPreAuthenticatedCredentials
通常、資格情報は適用されませんが、credentialsRequestHeader
が設定されている場合、これが読み取られて資格情報の値として使用されます。それ以外の場合は、ダミー値が使用されます。setPrincipalRequestHeader
setCredentialsRequestHeader
setExceptionIfHeaderMissing
public void setExceptionIfHeaderMissing(boolean exceptionIfHeaderMissing) プリンシパルヘッダーがない場合に例外を発生させるかどうかを定義します。デフォルトはtrue
です。- パラメーター:
exceptionIfHeaderMissing
-false
に設定すると、デフォルトの動作が上書きされ、ヘッダーが見つからない場合にリクエストを続行できます。