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 変数で
       設定します。
       なお、各レベル共通で、戻し処理はレベルに関係なく実行されます。
         レベル０：なにも制限はありません。
         レベル１：Referer チェックを行います。つまり、URLを直接入力しても動作しません。
                   ただし、Refererが付いてさえいれば、アクセス許可を与えます。
                   Referer 無しの場合でも、URLにパラメータが存在しない、または、
                   アドレスがハッシュ化/暗号化されている場合は、アクセスを許可します。
                   レベル１の場合、ハッシュ戻し/複合化処理は行います。あくまで、ハッシュ化
                   暗号化されていない場合でも、Refererさえあれば、許可するということです。
                   (パラメータなし or ハッシュあり or Refererあり の場合、許可)
         レベル２：フィルター処理としては、レベル１と同じです。
                   異なるのは、URLのハッシュ化/暗号化処理を、外部URLに対してのみ行います。
                   (パラメータなし or ハッシュあり or Refererあり の場合、許可)
         レベル３：URLのパラメータがハッシュ化/暗号化されている必要があります。
                   レベル１同様、URLにパラメータが存在しない場合は、アクセスを許可します。
                   レベル１と異なるのは、パラメータは必ずハッシュ化か、暗号化されている
                   必要があるということです。(内部/外部問わず)
                   (パラメータなし 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,

- - ### コンストラクタのサマリー

    コンストラクタ
    コンストラクタと説明
    `URLHashFilter()` デフォルトコンストラクター

  - ### メソッドのサマリー

    すべてのメソッド インスタンス・メソッド concreteメソッド
    修飾子とタイプ | メソッドと説明
    --- | ---
    `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()

      デフォルトコンストラクター
      変更履歴:

        6.4.2.0 (2016/01/29) PMD refactoring. Each class should declare at least one constructor.

  - ### メソッドの詳細

    - #### doFilter

          public void doFilter(javax.servlet.ServletRequest request,
                               javax.servlet.ServletResponse response,
                               javax.servlet.FilterChain chain)
                        throws java.io.IOException,
                               javax.servlet.ServletException

      フィルター処理本体のメソッドです。
      定義:
        `doFilter` インタフェース内 `javax.servlet.Filter`
      パラメータ:
        `request` - ServletRequestオブジェクト
        `response` - ServletResponseオブジェクト
        `chain` - FilterChainオブジェクト
      例外:
        `java.io.IOException` - 入出力エラーが発生したとき
        `javax.servlet.ServletException` - サーブレット関係のエラーが発生した場合、throw されます。
      変更履歴:

        5.3.0.0 (2010/12/01) 文字化け対策として、setCharacterEncoding を実行する。
        6.3.8.3 (2015/10/03) アクセス拒否を示すメッセージファイルの内容を取り出します。

    - #### init

          public void init(javax.servlet.FilterConfig config)

      フィルターの初期処理メソッドです。 フィルターに対してweb.xml で初期パラメータを設定します。 ・filename :停止時メッセージ表示ファイル名 ・initPage :最初にアクセスされる初期画面アドレス(初期値:/jsp/index.jsp) ・debug :デバッグメッセージの表示(初期値:false)
      定義:
        `init` インタフェース内 `javax.servlet.Filter`
      パラメータ:
        `config` - FilterConfigオブジェクト
      変更履歴:

        5.7.3.2 (2014/02/28) Tomcat8 対応。getRealPath( "/" ) の互換性のための修正。
        6.2.4.1 (2015/05/22) REAL_PATH 対応。realPath は、HybsSystem経由で、取得する。
        6.3.8.3 (2015/10/03) filenameの初期値設定。

    - #### destroy

          public void destroy()

      フィルターの終了処理メソッドです。
      定義:
        `destroy` インタフェース内 `javax.servlet.Filter`

    - #### toString

          public java.lang.String toString()

      内部状態を文字列で返します。
      オーバーライド:
        `toString` クラス内 `java.lang.Object`
      戻り値:
        このクラスの文字列表示
      このメソッドは、nullを返しません

Webアプリケーションフレームワーク openGion
Copyright (c) 2009 The openGion Project.