Ajaxフレームワーク ユーザーズガイド
目次 索引 前ページ次ページ

第3章 通信フレームワーク> 3.9 リクエスト送信時のURLについて

3.9.2 URLリライティング

Ajaxフレームワークを利用した通信、および画面部品内での通信において、URLリライティングを使用する場合は、動作定義にセションIDを設定します。

ここでは、以下の項目について説明します。


URLリライティングは、Cookieによるセション管理よりも、セションIDが搾取される危険性が高くなります。できる限り、Cookieによるセション管理を行ってください。URLリライティングを使用しない場合は、Cookieによるセション管理となります。

セションIDを付加する方法

URLに付加するセションIDは、Ajaxフレームワークの動作定義に追加することによって、設定することができます。

以下に、Ajaxフレームワークの動作定義に設定する例を示します。

<script type="text/javascript" charset="UTF-8" src="rcf_config.js"></script>

<script type="text/javascript">
//<![CDATA[
  // Ajaxフレームワークの動作定義にセションIDを設定
  RCF_config.jsessionid = "<%=session.getId()%>";
//]]>
</script>

<script type="text/javascript" src="acf/file/rcf/rcf.js"></script>

RCF_configオブジェクトのjsessionidプロパティについては、“Ajaxフレームワークの動作定義”を参照してください。


セションIDの設定は、Ajaxフレームワークの初期化処理(rcf.js)よりも先に記述しなければなりません。

ApcoordinatorのURLリライティング機能を使用する方法

Apcoordinatorを利用する場合は、ApcoordinatorのURLリライティング機能も使用する必要があります。
ApcoordinatorのURLリライティング機能を使用するには、com.fujitsu.uji.http.HttpControlStateProfileクラスを継承して作成したセションクラスで、getSessionMode()メソッドをオーバーライドして、HttpControlStateProfile.URLREWRITINGを返却するようにします。詳細は、“Apcoordinator ユーザーズガイド”を参照してください。
以下に記述例を示します。

import com.fujitsu.uji.http.HttpControlStateProfile;

public class Session extends HttpControlStateProfile {
  public Session() {
  }

  public int getSessionMode() {
    return HttpControlStateProfile.URLREWRITING;
  }

}

セションIDを利用する項目

動作定義に設定されたセションIDは、以下の項目でURLに付加されます。


以下に示すHTMLタグによって記述されたリソースの取得では、Ajaxフレームワークで設定されたセションIDは付加されません。
アプリケーションで付加する必要があります。

JavaScript APIによって任意のURLにセションIDを付加する方法

以下のAPIを利用すると、任意のURLに対して、動作定義に設定されたセションIDを付加することができます。

JavaScript API

説明

RCF.encodeURL(String url)

パラメタで指定したURLに、RCF_configオブジェクトのjsessionidで指定されたセションIDが付加されて返されます。
RCF_configオブジェクトのjsessionidが設定されていない場合は、パラメタで指定したURLがそのまま返されます。
返却されるURLは、以下のような形式となります。
url;jsessionid=123ABC

パラメタの設定値に異常がある場合は、エラーメッセージ(RCF20008)が出力されます。


目次 索引 前ページ次ページ

Copyright 2009 FUJITSU LIMITED