jp.terasoluna.fw.web.thin
クラス AuthorizationControlFilter

java.lang.Object
  上位を拡張 jp.terasoluna.fw.web.thin.AbstractControlFilter<AuthorizationController>
      上位を拡張 jp.terasoluna.fw.web.thin.AuthorizationControlFilter
すべての実装されたインタフェース:
javax.servlet.Filter

public class AuthorizationControlFilter
extends AbstractControlFilter<AuthorizationController>

アクセス権限のチェックを行う。

このクラスではブラウザからのリクエストに対するフィルタ処理を、 Bean定義ファイルで指定された任意のAuthorizationControllerインスタンス を呼び出し、指定されたパスへのアクセス権限を持っているかどうかの チェック処理を委譲する。

アクセス権限チェック機能

指定されたパスへのアクセス権限を持っているかを判別する。 アクセス権限違反の場合は、UnauthorizedExceptionをスローする。

使用方法

この機能を使用するには デプロイメントディスクリプタ(web.xml)と Bean定義ファイルに以下のように設定する。 このとき、Bean定義ファイルに定義するid属性が、 sampleAuthorizationControllerである<bean>要素の class属性には、AuthorizationControllerインタフェースを 実装したクラスを設定する。

デプロイメントディスクリプタ(web.xml)

 <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>要素を省略することができる。

関連項目:
AuthorizationController, BlockageControlFilter, BlockageController, ServerBlockageControlFilter, ServerBlockageController

フィールドの概要
private static java.lang.Class AUTHORIZATION_CONTROLLER_CLASS
          アクセス権限チェック処理を委譲するコントローラクラス。
private static java.lang.String AUTHORIZATION_CONTROLLER_ERROR
          オーソリゼーションコントローラの生成失敗を示すエラーコード。
static java.lang.String AUTHORIZATION_THRU_KEY
          リクエストがフィルタを通過したことを示すリクエスト属性のキー。
protected static AuthorizationController controller
          AuthorizationControllerインスタンス。
static java.lang.String DEFAULT_AUTHORIZATION_BEAN_ID
          DIコンテナからコントローラーの実装クラスを取得するための <bean>要素のid属性に使用されるデフォルトid。
private static Log log
          ログクラス。
 
クラス jp.terasoluna.fw.web.thin.AbstractControlFilter から継承されたフィールド
config
 
コンストラクタの概要
AuthorizationControlFilter()
           
 
メソッドの概要
 void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)
          アクセス権限チェックを行う。
static AuthorizationController getAuthorizationController()
          AuthorizationControllerインスタンスを戻す。
protected  java.lang.Class getControllerClass()
          アクセス制御を行うクラスが実装すべきインタフェースを返す。
 java.lang.String getDefaultControllerBeanId()
          DIコンテナからコントローラを取得する際のデフォルトのidを返す。
protected  java.lang.String getErrorCode()
          コントローラの生成失敗を示すエラーコードを返す。
 void init(javax.servlet.FilterConfig config)
          フィルタがサービス開始状態になる際に、コンテナによって呼び出される。
 
クラス jp.terasoluna.fw.web.thin.AbstractControlFilter から継承されたメソッド
destroy, getController, setConfig
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

AUTHORIZATION_THRU_KEY

public static final java.lang.String AUTHORIZATION_THRU_KEY
リクエストがフィルタを通過したことを示すリクエスト属性のキー。

関連項目:
定数フィールド値

DEFAULT_AUTHORIZATION_BEAN_ID

public static final java.lang.String DEFAULT_AUTHORIZATION_BEAN_ID
DIコンテナからコントローラーの実装クラスを取得するための <bean>要素のid属性に使用されるデフォルトid。

関連項目:
定数フィールド値

AUTHORIZATION_CONTROLLER_ERROR

private static final java.lang.String AUTHORIZATION_CONTROLLER_ERROR
オーソリゼーションコントローラの生成失敗を示すエラーコード。

関連項目:
定数フィールド値

AUTHORIZATION_CONTROLLER_CLASS

private static final java.lang.Class AUTHORIZATION_CONTROLLER_CLASS
アクセス権限チェック処理を委譲するコントローラクラス。


log

private static Log log
ログクラス。


controller

protected static AuthorizationController controller
AuthorizationControllerインスタンス。

コンストラクタの詳細

AuthorizationControlFilter

public AuthorizationControlFilter()
メソッドの詳細

getAuthorizationController

public static AuthorizationController getAuthorizationController()
AuthorizationControllerインスタンスを戻す。

戻り値:
このフィルタに設定されているAuthorizationControllerインスタンス

init

public void init(javax.servlet.FilterConfig config)
          throws javax.servlet.ServletException
フィルタがサービス開始状態になる際に、コンテナによって呼び出される。 コンテナは、Filterをインスタンス化した後に、initメソッドを 1 回だけ呼び出す。
Filterにフィルタ処理作業を実行するように要求するには、 init メソッドが正常に 終了していなければならない。 initメソッドが 次のいずれかの状態の場合、コンテナは Filterをサービス状態にできない。

定義:
インタフェース javax.servlet.Filter 内の init
オーバーライド:
クラス AbstractControlFilter<AuthorizationController> 内の init
パラメータ:
config - FilterConfigインスタンス。
例外:
javax.servlet.ServletException - 初期化異常時にスローされる例外。
関連項目:
Filter.init(javax.servlet.FilterConfig), AbstractControlFilter

doFilter

public void doFilter(javax.servlet.ServletRequest req,
                     javax.servlet.ServletResponse res,
                     javax.servlet.FilterChain chain)
              throws java.io.IOException,
                     javax.servlet.ServletException
アクセス権限チェックを行う。

定義:
インタフェース javax.servlet.Filter 内の doFilter
定義:
クラス AbstractControlFilter<AuthorizationController> 内の doFilter
パラメータ:
req - HTTPリクエスト
res - HTTPレスポンス
chain - フィルタチェーン
例外:
java.io.IOException - I/Oエラー
javax.servlet.ServletException - サーブレット例外
関連項目:
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

getControllerClass

protected java.lang.Class getControllerClass()
アクセス制御を行うクラスが実装すべきインタフェースを返す。

定義:
クラス AbstractControlFilter<AuthorizationController> 内の getControllerClass
戻り値:
このフィルタで使用するコントローラのクラス

getErrorCode

protected java.lang.String getErrorCode()
コントローラの生成失敗を示すエラーコードを返す。

定義:
クラス AbstractControlFilter<AuthorizationController> 内の getErrorCode
戻り値:
エラーコード

getDefaultControllerBeanId

public java.lang.String getDefaultControllerBeanId()
DIコンテナからコントローラを取得する際のデフォルトのidを返す。

定義:
クラス AbstractControlFilter<AuthorizationController> 内の getDefaultControllerBeanId
戻り値:
デフォルトのid属性値