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