public class AuthorizationControlFilter extends AbstractControlFilter<AuthorizationController>
このクラスではブラウザからのリクエストに対するフィルタ処理を、
Bean定義ファイルで指定された任意のAuthorizationControllerインスタンス
を呼び出し、指定されたパスへのアクセス権限を持っているかどうかの
チェック処理を委譲する。
指定されたパスへのアクセス権限を持っているかを判別する。
アクセス権限違反の場合は、UnauthorizedExceptionをスローする。
この機能を使用するには デプロイメントディスクリプタ(web.xml)と
Bean定義ファイルに以下のように設定する。
このとき、Bean定義ファイルに定義するid属性が、
sampleAuthorizationControllerである<bean>要素の
class属性には、AuthorizationControllerインタフェースを
実装したクラスを設定する。
<filter>
<filter-name>
authorizationControlFilter
</filter-name>
<filter-class>
jp.terasoluna.fw.web.thin.AuthorizationControlFilter
</filter-class>
<init-param>
<param-name>controller</param-name>
<param-value>
"sampleAuthorizationController"
</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>authorizationControlFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<error-page>
<exception-type>
jp.terasoluna.fw.web.thin.UnauthorizedException
</exception-type>
<location>/unauthorizedError.jsp</location>
</error-page>
Bean定義ファイル
<bean id="sampleAuthorizationController"
class="jp.terasoluna…SampleAuthorizationController" />
なお、Bean定義ファイルに定義する<bean>要素のid属性をデフォルト値である
"authorizationController"に設定する場合には、
デプロイメントディスクリプタ(web.xml)内の<filter>要素から
<init-param>要素を省略することができる。| 修飾子とタイプ | フィールドと説明 |
|---|---|
static String |
AUTHORIZATION_THRU_KEY
リクエストがフィルタを通過したことを示すリクエスト属性のキー。
|
protected static AuthorizationController |
controller
AuthorizationControllerインスタンス。
|
static String |
DEFAULT_AUTHORIZATION_BEAN_ID
DIコンテナからコントローラーの実装クラスを取得するための
<bean>要素のid属性に使用されるデフォルトid。
|
config| コンストラクタと説明 |
|---|
AuthorizationControlFilter() |
| 修飾子とタイプ | メソッドと説明 |
|---|---|
void |
doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse res,
javax.servlet.FilterChain chain)
アクセス権限チェックを行う。
|
static AuthorizationController |
getAuthorizationController()
AuthorizationControllerインスタンスを戻す。
|
protected Class |
getControllerClass()
アクセス制御を行うクラスが実装すべきインタフェースを返す。
|
String |
getDefaultControllerBeanId()
DIコンテナからコントローラを取得する際のデフォルトのidを返す。
|
protected String |
getErrorCode()
コントローラの生成失敗を示すエラーコードを返す。
|
void |
init(javax.servlet.FilterConfig config)
フィルタがサービス開始状態になる際に、コンテナによって呼び出される。
|
destroy, getController, setConfigpublic static final String AUTHORIZATION_THRU_KEY
public static final String DEFAULT_AUTHORIZATION_BEAN_ID
protected static AuthorizationController controller
public static AuthorizationController getAuthorizationController()
public void init(javax.servlet.FilterConfig config)
throws javax.servlet.ServletException
init インタフェース内 javax.servlet.Filterinit クラス内 AbstractControlFilter<AuthorizationController>config - FilterConfigインスタンス。javax.servlet.ServletException - 初期化異常時にスローされる例外。Filter.init(javax.servlet.FilterConfig),
AbstractControlFilterpublic void doFilter(javax.servlet.ServletRequest req,
javax.servlet.ServletResponse res,
javax.servlet.FilterChain chain)
throws IOException,
javax.servlet.ServletException
doFilter インタフェース内 javax.servlet.FilterdoFilter クラス内 AbstractControlFilter<AuthorizationController>req - HTTPリクエストres - HTTPレスポンスchain - フィルタチェーンIOException - I/Oエラーjavax.servlet.ServletException - サーブレット例外Filter.doFilter(javax.servlet.ServletRequest,
javax.servlet.ServletResponse,
javax.servlet.FilterChain)protected Class getControllerClass()
getControllerClass クラス内 AbstractControlFilter<AuthorizationController>protected String getErrorCode()
getErrorCode クラス内 AbstractControlFilter<AuthorizationController>public String getDefaultControllerBeanId()
getDefaultControllerBeanId クラス内 AbstractControlFilter<AuthorizationController>Copyright © 2014. All Rights Reserved.