jp.terasoluna.fw.web.thin
クラス AbstractControlFilter<E>

java.lang.Object
  上位を拡張 jp.terasoluna.fw.web.thin.AbstractControlFilter<E>
型パラメータ:
E - コントローラクラスを指定する。
すべての実装されたインタフェース:
javax.servlet.Filter
直系の既知のサブクラス:
AuthenticationControlFilter, AuthorizationControlFilter, BlockageControlFilter, ServerBlockageControlFilter

public abstract class AbstractControlFilter<E>
extends java.lang.Object
implements javax.servlet.Filter

beanとして実装されたコントローラを用いてアクセス制御を行う抽象クラス。

このクラスは、DIコンテナから取得したbeanを用いてアクセス制御を行うクラスの 上位クラスである。

使用方法

このクラスの実装クラスを使用するには デプロイメントディスクリプタ(web.xml) とBean定義ファイルに以下のように設定する。 このとき、Bean定義ファイルに定義するid属性が、 sampleXxxControllerである<bean>要素の class属性には、各フィルタが指定するインタフェース(ここではxxxController)を 実装したクラス(ここではSampleXxxController)を設定する。
※Xxxは各機能を提供するFilterによって変わる。

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

 <filter>
   <filter-name>
     xxxControlFilter
   </filter-name>
   <filter-class>
     jp.terasoluna.sample.XxxControlFilter
   </filter-class>
   <init-param>
     <param-name>controller</param-name>
     <param-value>
       "sampleXxxController"
     </param-value>
   </init-param>
 </filter>

 <filter-mapping>
   <filter-name>xxxControlFilter</filter-name>
   <url-pattern>/*</url-pattern>
 </filter-mapping>
 
 <error-page>
   <exception-type>
     jp.terasoluna.sample.XxxException
   </exception-type>
   <location>/XxxError.jsp</location>
 </error-page>
 
Bean定義ファイル

 <bean id="sampleXxxController"
       class="jp.terasoluna…SampleXxxController" />
 

なお、フィルタによっては、Bean定義ファイルに定義する<bean>要素の id属性にデフォルト値を用意している。 その場合は、デプロイメントディスクリプタ(web.xml)内の<filter>要素から <init-param>要素を省略することができる。


フィールドの概要
protected  javax.servlet.FilterConfig config
          フィルタ設定情報。
private static Log log
          ログクラス。
 
コンストラクタの概要
AbstractControlFilter()
           
 
メソッドの概要
 void destroy()
          フィルタ処理時に呼び出される。
abstract  void doFilter(javax.servlet.ServletRequest req, javax.servlet.ServletResponse res, javax.servlet.FilterChain chain)
          アクセス制御を行う。
protected  E getController()
          DIコンテナからコントローラインスタンスを取得してくる。
protected abstract  java.lang.Class getControllerClass()
          アクセス制御を行うクラスが実装すべきインタフェースを返す。
abstract  java.lang.String getDefaultControllerBeanId()
          DIコンテナからコントローラを取得する際のデフォルトのidを返す。
protected abstract  java.lang.String getErrorCode()
          コントローラの生成失敗を示すエラーコードを返す。
 void init(javax.servlet.FilterConfig config)
          フィルタがサービス開始状態になる際に、コンテナによって呼び出される。
protected  void setConfig(javax.servlet.FilterConfig config)
          フィルタ設定情報を設定する。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

フィールドの詳細

log

private static Log log
ログクラス。


config

protected javax.servlet.FilterConfig config
フィルタ設定情報。

コンストラクタの詳細

AbstractControlFilter

public AbstractControlFilter()
メソッドの詳細

init

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

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

setConfig

protected void setConfig(javax.servlet.FilterConfig config)
フィルタ設定情報を設定する。

パラメータ:
config - フィルタ設定情報

getController

protected E getController()
DIコンテナからコントローラインスタンスを取得してくる。

戻り値:
E 取得したコントローラインスタンス

getControllerClass

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

戻り値:
このフィルタで使用するコントローラのクラス

getErrorCode

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

戻り値:
エラーコード

getDefaultControllerBeanId

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

戻り値:
デフォルトのid属性値

doFilter

public abstract 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
パラメータ:
req - HTTPリクエスト
res - HTTPレスポンス
chain - フィルタチェーン
例外:
java.io.IOException - I/Oエラー
javax.servlet.ServletException - サーブレット例外
関連項目:
Filter.doFilter(javax.servlet.ServletRequest, javax.servlet.ServletResponse, javax.servlet.FilterChain)

destroy

public void destroy()
フィルタ処理時に呼び出される。
このクラスでは処理は行なわない。

定義:
インタフェース javax.servlet.Filter 内の destroy
関連項目:
Filter.destroy()