org.codecluster.http
クラス C2RequestInfo

java.lang.Object
  上位を拡張 org.codecluster.http.C2RequestInfo
すべての実装されたインタフェース:
java.io.Serializable, C2Constants

public class C2RequestInfo
extends java.lang.Object
implements java.io.Serializable, C2Constants

HttpServletRequest 内のリクエストヘッダを解析してクライアントの追加情報を取得し格納するクラスです。

C2config.xml にて指定したプロパティに応じて情報を取得します。

remote-address-header: リモートアドレスが格納されいているリクエストヘッダ名で、 空にすれば取得しません。
secure-header: リモートからのリクエストがSSL通信によるものであったか否かを 判定するためのリクエストヘッダ名で、空にすれば取得しません。
secure-true-keyword: SSL通信であると判断するキーワード。 secure-header で指定したヘッダの内容がこの値と一致する場合にSSL通信とみなします。 空にすれば secure-header があれば内容にかかわらずSSL通信とみなします。

C2config.xml プロパティファイル中に記述されたプロパティ "cache" で指定した時間(秒)は プロパティの再読み込みを行いません。"-1" を指定すると完全に再読み込みは行わなくなります。
ただし、reload フラグを true で、コンストラクタを呼び出した場合にはキャッシュ時間にかかわらず 強制的に再読み込みを行います。

※注意※

リクエストヘッダ名はクライアントから類推できない名称にするか、リバースプロキシなどで、 必ず正規の値に書きかえるか、一度削除することを推奨します。
クライアントからのヘッダを信用しないように対策してください。 さもなければリモートアドレスなどを詐称できることになります。

関連項目:
直列化された形式

フィールドの概要
 
インタフェース org.codecluster.C2Constants から継承されたフィールド
CONF_C2SESSION_TIMEOUT, CONF_CACHE_SECONDS, CONF_REDIRECT_RULE_CLASS, CONF_REMOTE_ADDRESS_HEADER, CONF_SECURE_HEADER, CONF_SECURE_TRUE_KEYWORD, CONF_SIMPLE_REDIRECT_BASE, DEFAULT_CONFIG_XML
 
コンストラクタの概要
C2RequestInfo(javax.servlet.http.HttpServletRequest request)
          指定された HttpRequest より追加のクライアント情報を取得します。
C2RequestInfo(javax.servlet.http.HttpServletRequest request, boolean reload)
          指定された HttpRequest より追加のクライアント情報を取得します。
 
メソッドの概要
 java.lang.String getRemoteAddr()
          クライアントのリモートアドレスを返します。
 boolean isSecure()
          リクエストが SSL 通信であるかを確認します。
protected  void loadXML(boolean reload)
          プロパティ XML の読み込みをキャッシュ時間を考慮して行います。
protected  void setRemoteAddr(java.lang.String remoteAddr)
          クライアントのリモートアドレスを設定します。
protected  void setSecure(boolean secure)
          リクエストが SSL 通信であるかを設定します。
 
クラス java.lang.Object から継承されたメソッド
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

コンストラクタの詳細

C2RequestInfo

public C2RequestInfo(javax.servlet.http.HttpServletRequest request,
                     boolean reload)
指定された HttpRequest より追加のクライアント情報を取得します。
reload フラグに true を指定するとプロパティファイルを強制的に再読み込みします。 指定していない場合にはプロパティファイルはキャッシュ時間内は再読み込みを行いません。

パラメータ:
request - リクエスト
reload - true でプロパティファイルを強制再読み込みします

C2RequestInfo

public C2RequestInfo(javax.servlet.http.HttpServletRequest request)
指定された HttpRequest より追加のクライアント情報を取得します。
プロパティファイルはキャッシュ時間内は再読み込みを行いません。

パラメータ:
request - リクエスト
メソッドの詳細

isSecure

public boolean isSecure()
リクエストが SSL 通信であるかを確認します。

戻り値:
SSL通信の場合は true を返す

setSecure

protected void setSecure(boolean secure)
リクエストが SSL 通信であるかを設定します。

パラメータ:
secure - SSL通信の場合は true を設定

getRemoteAddr

public java.lang.String getRemoteAddr()
クライアントのリモートアドレスを返します。

設定ファイルで定義したヘッダ情報をもとにクライアントのリモートアドレスを返します。

戻り値:
リモートアドレス

setRemoteAddr

protected void setRemoteAddr(java.lang.String remoteAddr)
クライアントのリモートアドレスを設定します。

パラメータ:
remoteAddr - リモートアドレス

loadXML

protected void loadXML(boolean reload)
プロパティ XML の読み込みをキャッシュ時間を考慮して行います。
実装は C2PropertiesManager に依存します。

パラメータ:
reload - true でキャッシュを使用せず強制再読み込みします