org.opengion.hayabusa.filter
クラス URLHashFilter
java.lang.Object
org.opengion.hayabusa.filter.URLHashFilter
- すべての実装されたインタフェース:
- javax.servlet.Filter
public final class URLHashFilter
- extends java.lang.Object
- implements javax.servlet.Filter
URLHashFilter は、Filter インターフェースを継承した URLチェッククラスです。
web.xml で filter 設定することにより、処理を開始します。
filter 処理は、設定レベルとURLの飛び先により処理方法が異なります。
このフィルターでは、ハッシュ化/暗号化ではなく、アドレスに戻す作業になります。
内部URLの場合はハッシュ化、外部URLの場合は暗号化に適用されます。
基本的には、外部へのURLでエンジンシステムへ飛ばす場合は、暗号化になります。
内部へのURLは、基本的に、パラメータのみ暗号化を行います。なお、直接画面IDを
指定して飛ばす場合を、止めるかどうかは、設定レベルに依存します。
フィルターの設定レベルは、システムリソースの URL_ACCESS_SECURITY_LEVEL 変数で
設定します。
なお、各レベル共通で、戻し処理はレベルに関係なく実行されます。
レベル0:なにも制限はありません。
レベル1:Referer チェックを行います。つまり、URLを直接入力しても動作しません。
ただし、Refererが付いてさえいれば、アクセス許可を与えます。
Referer 無しの場合でも、URLにパラメータが存在しない、または、
アドレスがハッシュ化/暗号化されている場合は、アクセスを許可します。
レベル1の場合、ハッシュ戻し/複合化処理は行います。あくまで、ハッシュ化
暗号化されていない場合でも、Refererさえあれば、許可するということです。
(パラメータなし or ハッシュあり or Refererあり の場合、許可)
レベル2:フィルター処理としては、レベル1と同じです。
異なるのは、URLのハッシュ化/暗号化処理を、外部URLに対してのみ行います。
(パラメータなし or ハッシュあり or Refererあり の場合、許可)
レベル3:URLのパラメータがハッシュ化/暗号化されている必要があります。
レベル1同様、URLにパラメータが存在しない場合は、アクセスを許可します。
レベル1と異なるのは、パラメータは必ずハッシュ化か、暗号化されている
必要があるということです。(内部/外部問わず)
(パラメータなし or ハッシュあり の場合、許可)
それ以外:アクセスを停止します。
フィルターに対してweb.xml でパラメータを設定します。
・filename :停止時メッセージ表示ファイル名(例:/jsp/custom/refuseAccess.html)
・initPage :最初にアクセスされる初期画面アドレス(初期値:/jsp/index.jsp)
・debug :デバッグメッセージの表示(初期値:false)
【WEB-INF/web.xml】
<filter>
<filter-name>URLHashFilter</filter-name>
<filter-class>org.opengion.hayabusa.filter.URLHashFilter</filter-class>
<init-param>
<param-name>filename</param-name>
<param-value>/jsp/custom/refuseAccess.html</param-value>
</init-param>
<init-param>
<param-name>initPage</param-name>
<param-value>/jsp/index.jsp</param-value>
</init-param>
<init-param>
<param-name>debug</param-name>
<param-value>false</param-value>
</init-param>
</filter>
<filter-mapping>
<filter-name>URLHashFilter</filter-name>
<url-pattern>*.jsp</url-pattern>
</filter-mapping>
- 変更履歴:
5.2.2.0 (2010/11/01) 新規追加 |
- 機能分類
- フィルター処理
- バージョン
- 5.2.2.0 (2010/11/01)
- 作成者
- Kazuhiko Hasegawa
- 導入されたバージョン:
- JDK1.6,
メソッドの概要 |
void |
destroy()
フィルターの終了処理メソッドです。 |
void |
doFilter(javax.servlet.ServletRequest request,
javax.servlet.ServletResponse response,
javax.servlet.FilterChain chain)
フィルター処理本体のメソッドです。 |
void |
init(javax.servlet.FilterConfig config)
フィルターの初期処理メソッドです。 |
java.lang.String |
toString()
内部状態を文字列で返します。 |
クラス java.lang.Object から継承されたメソッド |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
URLHashFilter
public URLHashFilter()
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
- パラメータ:
request
- ServletRequestオブジェクトresponse
- ServletResponseオブジェクトchain
- FilterChainオブジェクト
- 例外:
java.io.IOException
- 入出力エラーが発生したとき
javax.servlet.ServletException
- サーブレット関係のエラーが発生した場合、throw されます。- 変更履歴:
5.3.0.0 (2010/12/01) 文字化け対策として、setCharacterEncoding を実行する。 |
init
public void init(javax.servlet.FilterConfig config)
- フィルターの初期処理メソッドです。
フィルターに対してweb.xml で初期パラメータを設定します。
・filename :停止時メッセージ表示ファイル名
・initPage :最初にアクセスされる初期画面アドレス(初期値:/jsp/index.jsp)
・debug :デバッグメッセージの表示(初期値:false)
- 定義:
- インタフェース
javax.servlet.Filter
内の init
- パラメータ:
config
- FilterConfigオブジェクト- 変更履歴:
5.7.3.2 (2014/02/28) Tomcat8 対応。getRealPath( "/" ) の互換性のための修正。 |
destroy
public void destroy()
- フィルターの終了処理メソッドです。
- 定義:
- インタフェース
javax.servlet.Filter
内の destroy
toString
public java.lang.String toString()
- 内部状態を文字列で返します。
- オーバーライド:
- クラス
java.lang.Object
内の toString
- 戻り値:
- このクラスの文字列表示
Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.