7.12.3 DDでの定義例
(1) HTTP Cookieによる制御の場合
メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は,HTTP Cookieによってグローバルセッションを制御し,byte型配列のセッション情報を引き継ぐ場合の例です。
:
<!--The filter for Session Fail Over -->
<filter>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
<init-param>
<param-name>GSInfoKey-RW</param-name>
<param-value>page</param-value>
</init-param>
<init-param>
<param-name>GSInfoKey-R</param-name>
<param-value>userId;roll</param-value>
</init-param>
<init-param>
<param-name>GSInfosLengthMax</param-name>
<param-value>44</param-value>
</init-param>
<init-param>
<param-name>SFOServerName</param-name>
<param-value>sfo_server1</param-value>
</init-param>
<init-param>
<param-name>GSessionControl</param-name>
<param-value>cookie</param-value>
</init-param>
<init-param>
<param-name>GIDCookieName</param-name>
<param-value>SFOSESSIONID</param-value>
</init-param>
<init-param>
<param-name>LockTimeout</param-name>
<param-value>180</param-value>
</init-param>
<init-param>
<param-name>GSInfoTypeByteArrayEnable</param-name>
<param-value>true</param-value>
</init-param>
</filter>
<!-- Specify the filter tags here. -->
<filter>
<filter-name>UserFilter</filter-name>
<filter-class>filter.UserFilter</filter-class>
</filter>
<!-- The filter mappings for the Session Fail Over-->
<filter-mapping>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
<!-- Specify the filter-mapping tags here. -->
<filter-mapping>
<filter-name>UserFilter</filter-name>
<url-pattern>/servlet/*</url-pattern>
</filter-mapping>
:
</web-app> |
この例で定義される内容は,次のとおりです。
- 書き換え可能グローバルセッション情報として,「page」の値を格納します。
- 読み込み専用グローバルセッション情報として,「userId」および「roll」の2種類の値を格納します。
- グローバルセッション情報の最大サイズとして,49を設定します。
最大サイズは,次の式で算出します。ここでは,page(4文字)の値は1~2文字のASCII文字列,userId(6文字)の値は1~12バイトのbyte型配列,roll(4文字)の値は1~7文字のASCII文字列とします。
(4+6+4)+(2+7+(12+5))+(2×3-1)+4=49
- 使用するSFOサーバの名称は,sfo_server1とします。
- グローバルセッションIDのキー名称は,SFOSESSIONIDとします。
- SFOサーバでのロック待ちタイムアウト時間は,180秒とします。
- byte型配列のセッション情報を引き継ぎます。
(2) URL書き換えによる制御の場合
メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は,URL書き換えによってグローバルセッションを制御する場合の例です。
なお,ここでは,URL書き換えによる制御の場合にHTTP Cookieによる制御と異なる設定だけについて示します。
:
<!--The filter for Session Fail Over -->
<filter>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
:
<init-param>
<param-name>GSessionControl</param-name>
<param-value>url-rewriting</param-value>
</init-param>
<init-param>
<param-name>GIDURLParamName</param-name>
<param-value>sfogid</param-value>
</init-param>
:
</filter> |
この例では,グローバルセッションIDの送信に使用するURLのパスパラメタ名は,「sfogid」としています。
(3) 制御方法にbothを指定する場合
メモリセッションフェイルオーバ機能を使用する場合のDDの定義例を示します。この例は,制御方法としてGSessionControlに「both」を指定する場合の例です。bothは,WebクライアントがHTTP Cookieをサポートしているかどうかを判別して,必要に応じてHTTP Cookieによる制御とURL書き換えによる制御を切り替える方法です。
なお,ここでは,bothを指定する場合にHTTP Cookieによる制御と異なる設定だけについて示します。
:
<filter>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
:
<init-param>
<param-name>GSessionControl</param-name>
<param-value>both</param-value>
</init-param>
<init-param>
<param-name>GIDCookieName</param-name>
<param-value>SFOSESSIONID</param-value>
</init-param>
<init-param>
<param-name>GIDURLParamName</param-name>
<param-value>sfogid</param-value>
</init-param>
:
</filter> |
この例では,グローバルセッションIDの送信に使用するHTTP Cookieの名称は「SFOSESSIONID」としています。また,グローバルセッションIDの送信に使用するURLのパスパラメタ名は,「sfogid」としています。
(4) 統合ユーザ管理機能を使用しない場合
統合ユーザ管理機能を使用しない場合のDDでのフィルタ属性の記述例を次に示します。この例は,HTTP Cookieを使用してグローバルセッションを制御し,byte型配列のセッション情報を引き継ぐ場合の例です。
- DDでのフィルタ属性の記述例
(省略)
:
<filter>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
<init-param>
<param-name>GSInfoKey-RW</param-name>
<param-value>page</param-value>
</init-param>
<init-param>
<param-name>GSInfoKey-R</param-name>
<param-value>userId;roll</param-value>
</init-param>
<init-param>
<param-name>GSInfosLengthMax</param-name>
<param-value>44</param-value>
</init-param>
<init-param>
<param-name>SFOServerName</param-name>
<param-value>sfo_server1</param-value>
</init-param>
<init-param>
<param-name>GSessionControl</param-name>
<param-value>cookie</param-value>
</init-param>
<init-param>
<param-name>GIDCookieName</param-name>
<param-value>SFOSESSIONID</param-value>
</init-param>
<init-param>
<param-name>LockTimeout</param-name>
<param-value>180</param-value>
</init-param>
<init-param>
<param-name>GSInfoTypeByteArrayEnable</param-name>
<param-value>true</param-value>
</init-param>
:
(省略) |
- DDでのWAR属性の記述例
(省略)
:
<filter-mapping>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
:
(省略) |
この記述例で設定される内容は,次のとおりです。
- 書き換え可能なグローバルセッション情報として,「page」の値を格納します。
- 読み取り専用のグローバルセッション情報として,「UserID」および「Roll」の2種類の値を格納します。
- グローバルセッション情報の最大サイズとして,49を設定します。
最大サイズは,次の式で算出します。なお,ここでは,page(4文字)の値は1~2文字のASCII文字列,UserID(6文字)の値は1~12バイトのbyte型配列,roll(4文字)の値は1~7文字のASCII文字列とします。
(4+4+6)+(2+7+(12+5))+(2×3-1)+4=49
- グローバルセッション情報を格納するSFOサーバの名称は,「sfo_server1」とします。
- グローバルセッションの制御には,HTTP Cookieを使用します。
- グローバルセッションIDの送信に使用するCookieの名称は,「SFOSESSIONID」とします。
- グローバルセッション情報のロック待ちタイムアウトは,「180秒」とします。
- byte型配列のセッション情報を引き継ぐため,GSInfoTypeByteArrayEnableパラメタにtrueを指定します。
(5) 統合ユーザ管理機能を使用する場合
統合ユーザ管理機能を使用する場合のDDの記述例を次に示します。この例は,HTTP Cookieを使用してグローバルセッションを制御している場合の例です。
- DDでのフィルタ属性の記述例
(省略)
:
<filter>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<filter-class>com.hitachi.software.was.sfo.web.SFOFilter</filter-class>
<init-param>
<param-name>GSInfoKey-RW</param-name>
<param-value>com.cosminexus.admin.auth.user_data</param-value>
</init-param>
<init-param>
<param-name>GSInfoKey-R</param-name>
<param-value></param-value>
</init-param>
<init-param>
<param-name>GSInfosLengthMax</param-name>
<param-value>10380</param-value>
</init-param>
<init-param>
<param-name>SFOServerName</param-name>
<param-value>sfo_server1</param-value>
</init-param>
<init-param>
<param-name>GSessionControl</param-name>
<param-value>cookie</param-value>
</init-param>
<init-param>
<param-name>GIDCookieName</param-name>
<param-value>GSESSIONID</param-value>
</init-param>
<init-param>
<param-name>LockTimeout</param-name>
<param-value>30</param-value>
</init-param>
<init-param>
<param-name>GSInfoTypeByteArrayEnable</param-name>
<param-value>false</param-value>
</init-param>
</filter>
:
(省略) |
- DDでのWAR属性の記述例
(省略)
:
<filter-mapping>
<filter-name>com.hitachi.software.was.sfo.web.SFOFilter</filter-name>
<url-pattern>/*</url-pattern>
</filter-mapping>
:
(省略) |
この記述例で設定される内容は,次のとおりです。
- 書き換え可能なグローバルセッション情報として,「com.cosminexus.admin.auth.user_data」の値を格納します。
- グローバルセッション情報の最大サイズとして,10,380文字を設定します。
最大サイズは,次の式で算出します。
{1,500+(10+20+1,200)×3}×2=10,380
なお,ここでは,次の条件で最大サイズを算出しています。
- APIを使用する。
- パスワード保存機能は使用しない。
- レルム名の長さ:10
- ユーザ名の最大長:20
- レルム数(シングルサインオンを使用するシステムの数):3
- グローバルセッション情報を格納するSFOサーバの名称は,「sfo_server1」とします。
- グローバルセッションの制御には,HTTP Cookieを使用します。
- グローバルセッションIDの送信に使用するCookieの名称は,「GSESSIONID」とします。
- グローバルセッション情報のロック待ちタイムアウトは,「30」秒とします。
- グローバルセッション情報として,byte型配列を使用しないため,GSInfoTypeByteArrayEnableパラメタにfalseを指定します。