ページの先頭行へ戻る
Interstage Interaction Manager V10.1 Ajaxフレームワーク ユーザーズガイド
FUJITSU Software

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プロパティについては、「2.3.2 Ajaxフレームワークの動作定義」を参照してください。

注意

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

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

Apcoordinatorを利用する場合は、ApcoordinatorのURLリライティング機能も使用する必要があります。
ApcoordinatorのURLリライティング機能を使用するには、com.fujitsu.uji.http.HttpControlStateProfileクラスを継承して作成したセションクラスで、getSessionMode()メソッドをオーバーライドして、HttpControlStateProfile.URLREWRITINGを返却するようにします。詳細は、Interstage Application Serverの「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は付加されません。
アプリケーションで付加する必要があります。

  • <script>タグ
    Ajaxフレームワークの動作定義、Ajaxフレームワークの初期化処理、ユーザー定義のJavaScriptファイルの取得も対象です。

  • <img>タグ
    Button部品の子要素として記述した<img>タグも対象です。

  • <a>タグ

  • <link>タグ

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)が出力されます。