クラス ExceptionTranslationFilter
- java.lang.Object
-
- org.springframework.web.filter.GenericFilterBean
-
- org.springframework.security.web.access.ExceptionTranslationFilter
- 実装されたすべてのインターフェース:
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.EnvironmentAware
、org.springframework.context.MessageSourceAware
、org.springframework.core.env.EnvironmentCapable
、org.springframework.web.context.ServletContextAware
public class ExceptionTranslationFilter extends org.springframework.web.filter.GenericFilterBean implements org.springframework.context.MessageSourceAware
フィルターチェーン内でスローされたAccessDeniedException
およびAuthenticationException
を処理します。このフィルターは、Java 例外と HTTP レスポンス間のブリッジを提供するために必要です。ユーザーインターフェースの維持にのみ関係します。このフィルターは、実際のセキュリティ実施を行いません。
AuthenticationException
が検出された場合、フィルターはauthenticationEntryPoint
を起動します。これにより、AbstractSecurityInterceptor
の任意のサブクラスに起因する認証失敗の一般的な処理が可能になります。AccessDeniedException
が検出された場合、フィルターはユーザーが匿名ユーザーであるかどうかを判別します。匿名ユーザーの場合、authenticationEntryPoint
が起動します。それらが匿名ユーザーでない場合、フィルターはAccessDeniedHandler
に委譲します。デフォルトでは、フィルターはAccessDeniedHandlerImpl
を使用します。このフィルターを使用するには、次のプロパティを指定する必要があります。
authenticationEntryPoint
は、AuthenticationException
が検出された場合に認証プロセスを開始するハンドラーを示します。これにより、SSL ログインのために現在のプロトコルが http から https に切り替わることもあります。- requestCache は、ユーザーが認証されたらリクエストを取得して再利用できるように、認証プロセス中にリクエストを保存するために使用される戦略を決定します。デフォルトの実装は
HttpSessionRequestCache
です。
フィールドサマリー
フィールド 修飾子と型 フィールド 説明 protected org.springframework.context.support.MessageSourceAccessor
messages
コンストラクターのサマリー
コンストラクター コンストラクター 説明 ExceptionTranslationFilter(AuthenticationEntryPoint authenticationEntryPoint)
ExceptionTranslationFilter(AuthenticationEntryPoint authenticationEntryPoint, RequestCache requestCache)
メソッドのサマリー
すべてのメソッド インスタンスメソッド 具象メソッド 修飾子と型 メソッド 説明 void
afterPropertiesSet()
void
doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain)
AuthenticationEntryPoint
getAuthenticationEntryPoint()
protected AuthenticationTrustResolver
getAuthenticationTrustResolver()
protected void
sendStartAuthentication(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain, AuthenticationException reason)
void
setAccessDeniedHandler(AccessDeniedHandler accessDeniedHandler)
void
setAuthenticationTrustResolver(AuthenticationTrustResolver authenticationTrustResolver)
void
setMessageSource(org.springframework.context.MessageSource messageSource)
void
setThrowableAnalyzer(ThrowableAnalyzer throwableAnalyzer)
コンストラクターの詳細
ExceptionTranslationFilter
public ExceptionTranslationFilter(AuthenticationEntryPoint authenticationEntryPoint)
ExceptionTranslationFilter
public ExceptionTranslationFilter(AuthenticationEntryPoint authenticationEntryPoint, RequestCache requestCache)
メソッドの詳細
afterPropertiesSet
public void afterPropertiesSet()
- 次で指定:
- インターフェース
org.springframework.beans.factory.InitializingBean
のafterPropertiesSet
- オーバーライド:
- クラス
org.springframework.web.filter.GenericFilterBean
のafterPropertiesSet
doFilter
public void doFilter(javax.servlet.ServletRequest request, javax.servlet.ServletResponse response, javax.servlet.FilterChain chain) throws java.io.IOException, javax.servlet.ServletException
- 次で指定:
- インターフェース
javax.servlet.Filter
のdoFilter
- 例外:
java.io.IOException
javax.servlet.ServletException
getAuthenticationEntryPoint
public AuthenticationEntryPoint getAuthenticationEntryPoint()
getAuthenticationTrustResolver
protected AuthenticationTrustResolver getAuthenticationTrustResolver()
sendStartAuthentication
protected void sendStartAuthentication(javax.servlet.http.HttpServletRequest request, javax.servlet.http.HttpServletResponse response, javax.servlet.FilterChain chain, AuthenticationException reason) throws javax.servlet.ServletException, java.io.IOException
- 例外:
javax.servlet.ServletException
java.io.IOException
setAccessDeniedHandler
public void setAccessDeniedHandler(AccessDeniedHandler accessDeniedHandler)
setAuthenticationTrustResolver
public void setAuthenticationTrustResolver(AuthenticationTrustResolver authenticationTrustResolver)
setThrowableAnalyzer
public void setThrowableAnalyzer(ThrowableAnalyzer throwableAnalyzer)
setMessageSource
public void setMessageSource(org.springframework.context.MessageSource messageSource)
- 次で指定:
- インターフェース
org.springframework.context.MessageSourceAware
のsetMessageSource
- 導入:
- 5.5