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に付加されます。
UI部品
ComboBox部品
buttonImageプロパティ
FragmentContainer部品
srcプロパティ
statusIconImageプロパティ
Window部品、PopupCalendar部品
closeButtonImageプロパティ
ViewColumnImage部品
モデルに指定した配列データに含まれる表示画像のURL
TreeView部品、ContextMenu部品
headImageプロパティ
通信フレームワーク
Apcoordinator連携機能、サーブレット連携機能
optionオブジェクトに設定するurlプロパティ
マッシュアップフレームワーク
クライアント通信API
optionオブジェクトに設定するurlプロパティ
その他
Ajaxフレームワークが内部処理で利用するURL指定
イベントログ機能
UI部品を初期化するためのJavaScriptファイルの取得、など
注意
以下に示すHTMLタグによって記述されたリソースの取得では、Ajaxフレームワークで設定されたセションIDは付加されません。
アプリケーションで付加する必要があります。
<script>タグ
Ajaxフレームワークの動作定義、Ajaxフレームワークの初期化処理、ユーザー定義のJavaScriptファイルの取得も対象です。
<img>タグ
Button部品の子要素として記述した<img>タグも対象です。
<a>タグ
<link>タグ
JavaScript APIによって任意のURLにセションIDを付加する方法
以下のAPIを利用すると、任意のURLに対して、動作定義に設定されたセションIDを付加することができます。
JavaScript API | 説明 |
---|---|
パラメーターで指定したURLに、RCF_configオブジェクトのjsessionidで指定されたセションIDが付加されて返されます。 パラメーターの設定値に異常がある場合は、エラーメッセージ(RCF20008)が出力されます。 |