5.4.1 Multi Web Portlet作成時の注意事項

<この項の構成>
(1) HTTPエミュレーション
(2) 認証
(3) URL変換
(4) キャッシュ制御
(5) 要素フィルタリング
(6) コンテンツフィルタリング
(7) 外部サーバとのセッション維持
(8) その他の注意事項

(1) HTTPエミュレーション

(a) HTTPエミュレーション

Multi Web Portletは,HTTPでHTMLコンテンツを取得して,ポートレットとしてポータルに統合します。Multi Web PortletはHTTP1.1のサブセットに対応します。HTTPレスポンスコードの取り扱いを次の表に示します。

表5-2 レスポンスコードの取り扱い(Multi Web Portlet)

レスポンスコード内容
1xx:Informational結果フレーズをポートレットおよびログに出力します。
2xx:Successful200(正常終了)に対応します。201から206は結果フレーズをポートレットおよびログに出力します。
3xx:Redirection301,302,303,307(リダイレクト)に対応します。300,304,305,およびGET,またはHEAD以外のリクエストによって301,または307が返ってきた場合は,結果フレーズをポートレットおよびログに出力します。
4xx:Client Error401(Unauthorized)および407(Proxy Authentication Required)に対応します。
401および407以外は,結果フレーズをポートレットおよびログに出力します。
5xx:Server Error結果フレーズをポートレットおよびログに出力します。

注※ Multi Web Portletでは,301または302が返ってきた場合,レスポンスコードへの対応は使用するWebブラウザによって異なります。


対応するレスポンスヘッダフィールドの取り扱いを次の表に示します。

表5-3 レスポンスヘッダフィールドの取り扱い(Multi Web Portlet)

ヘッダフィールド内容
Cache-Controlキャッシュ制御に使用します。キャッシュ制御の指定は,Portal ManagerのWebポートレット設定時に定義できます。詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。
Content-Typeコンテンツのエンコーディング判定に使用します。text/htmlだけに対応します。
Last-Modifiedコンテンツの最終更新時刻です。キャッシュ制御に使用します。
Locationリダイレクト先のURLです。リダイレクト時に使用します。
Set-Cookie指定されたCookie値をサーバ内で保持します。
Set-Cookie2指定されたCookie値をサーバ内で保持します。
WWW-Authenticateベーシック認証を試みます。
Proxy-Authenticateプロキシ認証を試みます。

クライアントからのリクエストヘッダフィールドの取り扱いを次の表に示します。

表5-4 リクエストヘッダフィールドの取り扱い(Multi Web Portlet)

ヘッダフィールド内容
Hostリクエスト先のホスト名を設定します。
Accept対応するMIMEタイプを設定します。
Accept-Encoding対応するエンコーディングを設定します。
Accept-Language対応する言語を設定します。
User-AgentリクエストしたUser-Agentを設定します。
If-Modified-Sinceコンテンツの最終更新時刻を設定します。
CookieSet-Cookie1でサーバに保存されたCookieを設定します。
Cookie2Set-Cookie2でサーバに保存されたCookieを設定します。
Authorizationベーシック認証に必要な認証情報を設定します。
Proxy-Authorizationプロキシ認証に必要な認証情報を設定します。

(b) エンコーディング

HTMLコンテンツに日本語を記述する場合には,通常のHTMLコンテンツ同様,エンコーディング方法を指定する必要があります。エンコーディング方法の決定は,外部のWebサイトに格納されたHTMLコンテンツとuCosminexus Portal Framework内に配置したHTMLコンテンツで異なります。

uCosminexus Portal Frameworkでは,ユーザの環境による文字化けを防ぐために,ユーザの環境ごとにエンコーディング方法を推奨しています。uCosminexus Portal Frameworkが推奨するエンコーディングについては,「2.1.4 エンコーディング」を参照してください。

●外部Webサーバ上のHTMLコンテンツのエンコーディング指定

エンコーディング方法は,次の優先順位で決定されます。

  1. HTTPレスポンスヘッダのContent-Typeフィールドのcharsetパラメタ
  2. META要素中のContent-Type指定のcharsetパラメタ
  3. 自動判定

自動判定では,正しいエンコーディング方法を決定できないことがあるので,1.,または2.でのエンコーディング指定を推奨します。

(c) プロキシ連携

プロキシを経由してコンテンツを取得できます。プロキシと連携するには,Portal ManagerのWebポートレット設定時に定義できます。詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(d) リダイレクト

Multi Web Portletは,リダイレクト回数設定はできません。

(2) 認証

(a) 認証に対するシングルサインオン

PCからポータルにアクセスしている場合,ディレクトリサーバに格納されているユーザ情報(パーソナライズ情報)から認証情報を取得すれば,Webアプリケーションとのシームレスな連携ができます。

認証機能が利用できる前提条件を次に示します。

ベーシック認証

Webサーバのレスポンスコードが401(Unauthorized)の際,次の処理をします。

プロキシ認証

プロキシサーバのレスポンスコードが407(Proxy Authentication Required)の際,次の処理をします。

フォーム認証

Webサーバへのリクエスト情報を基にシングルサインオンを実現します。Multi Web Portletの場合,認証するサイトによって,認証画面を通過する必要があるとき,シングルサインオンはできません。パスワードの入力ミスなどによってフォーム認証に失敗した場合は,認証情報をクリアして,再度認証情報を入力する必要があります。

Multi Web Portletの場合は,ポートレットの編集ボタンをクリックし,「フォームベース認証のクリア」を実行して,再度認証情報を入力してください。

フォーム認証をするためには,次に示す項目をあらかじめ設定しておくことが必要です。

なお,管理者があらかじめユーザIDとパスワードを登録することはできません。

Multi Web Portletは,Portal Managerでフォーム認証情報を設定します。Multi Web Portletの場合のフォーム認証を設定する方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(3) URL変換

Multi Web Portletでは,ポータル画面内で画面遷移するために,Webページに含まれている相対パス形式および絶対パス形式のURLを,uCosminexus Portal Frameworkを経由するURLに変換します。BASE要素で基準となるURLが指定されている場合,BASE要素を基に自動的に変換します。

HTMLコンテンツ中に含まれる画像などのバイナリデータを,uCosminexus Portal Frameworkを経由して取得するか,またはWebブラウザが直接Webサーバから取得するかをPortal Managerでポートレットを登録するときに選択できます。この設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(4) キャッシュ制御

Multi Web Portletでは,uCosminexus Portal Framework内にHTML,CHTML,およびHDMLコンテンツをキャッシングしません。ただし,クライアントと転送先のWebサーバ間では,日付情報の有効期限を基に,クライアントに蓄積されたキャッシュを使用できます。

(5) 要素フィルタリング

要素フィルタリングは,Multi Web Portletの登録時に,フィルタリングするかしないかを設定できます。タグ,要素は取り除かれますが,コンテンツを表示するために必要なBASE要素やエンコーディング設定,およびキャッシュ制御に必要なMETA要素の一部はコンテンツ作成のために参照されます。

Multi Web Portletは,BODY本体内に記述できない開始,終了タグや要素を取り除きません。

Multi Web PortletのフィルタリングはPortal Managerの[ポートレットの設定]画面で設定します。フィルタリングの設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

要素フィルタリングで取り除かれるタグ,要素を次に示します。

なお,SCRIPT要素を設定すると,onで始まるイベント属性も設定されます。

(6) コンテンツフィルタリング

コンテンツフィルタリングとは,HTMLファイルをMulti Web Portletとして取り込む際に,コンテンツを抽出,または削除することです。コンテンツフィルタリングを使用すると,HTMLファイルの一部分をポートレットに取り込めます。コンテンツフィルタリングは,Webポートレットの登録時に設定できます。コンテンツフィルタリングの設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

コンテンツフィルタリングでは,コンテンツのBODY要素本体に含まれるディレクティブに従ってコンテンツを抽出,または削除します。ディレクティブも同時に抽出・削除します。

ディレクティブは,コメントまたは正規表現で指定できます。

なお,コンテンツフィルタリングの設定を次に示します。

表5-5 コンテンツフィルタリングの設定(Multi Web Portlet)

フィルタリング方式正規表現コメント
削除×
抽出××
(凡例)
○:設定できます。
×:設定できません。

正規表現でのディレクティブ指定
HTMLファイルの文字列をパターンとして指定します。パターンはWebポートレットごとに指定できます。
パターンを指定できる範囲を次に示します。
  • 先頭からパターンまで
  • パターンからパターンまで
  • パターンから終了まで
指定するパターンは大文字小文字を区別します。また,パターンには「,」および「|」は指定できません。HTMLファイルの文字列が,正規表現と合致しない場合,コンテンツフィルタリングをしません。
パターンからパターンまでの範囲は,複数指定できます。複数のフィルタリング範囲を指定する場合,フィルタリング範囲が重複しないようにパターンを指定してください。パターンからパターンまでの範囲では,パターン1およびパターン2を指定します。パターン2には,パターン1よりファイル内で後ろに記述されている文字列を指定します。
正規表現でのコンテンツフィルタリングの使用例
正規表現で削除するときの例を次に示します。
  • 特定個所のタグを消去する

    [図データ]

  • 特定のタグを一括して消去する

    [図データ]

  • コメント間を削除する

    [図データ]

(7) 外部サーバとのセッション維持

Multi Web Portletでは,外部Webサーバとのセッションを維持できます。セッション維持の方法を次に示します。

(a) Cookieによるセッション維持

外部WebサーバからのレスポンスからCookieを取得します。WebブラウザにはCookieを渡さないで,ポータルで保持します。ユーザがポータルにログインしており,かつ有効期限が永続的なCookieは,セッションが終了するとディレクトリサーバに保存されます。Cookieによるセッション維持を次の図に示します。

図5-2 Cookieによるセッション維持(Multi Web Portlet)

[図データ]

(b) URLRewritingによるセッション維持

URLを読み込んだあとにURLを書き換えて,セッションを維持します。

(8) その他の注意事項

(a) スタイル

Multi Web Portletではスタイルシートはページコンテンツ内のスタイルを使用します。

(b) FRAMESET

Multi Web Portletでは,FRAMESETを使用したHTMLコンテンツを表示できます。

(c) スクリプトを使用するには

スクリプトを使用するには,Webポートレットの登録の際に次の設定をしてください。

(d) インラインオブジェクトとの連携

HTML中に組み込まれるオブジェクトとMulti Web Portletは連携できません。

(e) 画面遷移

Multi Web Portletでは,HTMLコンテンツの場合,画面の表示先を指定するTARGETに「_PARENT」を指定しないでください。TARGETには「_TOP」,またはフレーム名を指定してください。なお,Multi Web Portletの画面内で「_PARENT」を使用した場合,ポータル画面が遷移することがあります。

(f) 最大化表示

Multi Web Portletの場合,次の条件のときは最大表示画面に切り替わりません。なお,最大化表示は,SCRIPTを使用している場合は設定しないでください。

(g) ポータル内のコンテンツ処理

Multi Web Portletでは,ポータル内のWebコンテンツ(HTML,CHTML,およびHDML)に対して次の処理をしません。

(h) プロキシサーバ使用時の注意事項

使用するプロキシサーバの種類によっては,ソケットレベルでの通信障害が発生することがあります。ソケットレベルでの通信障害が発生した場合,ポートレット定義ファイルのMulti Web Portletのポートレット定義に"hptl.MultiWebPortlet.ClientCacheSwitch"パラメタを追加して,valueに"NO"を指定してください。この設定によって,クライアントに蓄積されたキャッシュが使用できなくなり,通信障害を取り除けます。

なお,Portal Managerで設定を変更すると,ポートレット定義ファイルが上書きされるため,追加した"hptl.MultiWebPortlet.ClientCacheSwitch"パラメタは無効になります。Portal Managerで設定を変更した場合,再度,"hptl.MultiWebPortlet.ClientCacheSwitch"パラメタを追加してください。ポートレット定義ファイルについては,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「ポートレット定義ファイル(jetspeed-config.jcfg)」の説明を参照してください。

ポートレット定義ファイル(jetspeed-config.jcfg)の格納場所を次に示します。

{PROJECT_HOME}¥WEB-INF¥conf

ポートレット定義ファイルに追加した場合の例,および特定のポートレットにだけ追加した場合の例を次に示します。

ポートレット定義ファイルに追加した場合の例(下線部分を追加)

<portlet-entry type="abstract" name="MultiWeb">
 <classname>jp.co.hitachi.soft.portal.portal.portlets.MultiWebPortlet</classname>
 <parameter value="NO" name="hptl.MultiWebPortlet.ClientCacheSwitch"/>
 <parameter value="localhost" name="hptl.ProxyHost"/>
 <parameter value="8080" name="hptl.ProxyPort"/>
</portlet-entry>

特定のポートレットにだけ追加した場合の例(下線部分を追加)

<portlet-entry application="false" admin="false" parent="MultiWeb"
                            hidden="false" type="ref" name="Hitachi">
 <url>/portlets/hitachi.xml</url>
 <parameter value="NO" name="hptl.MultiWebPortlet.ClientCacheSwitch"/>
 <parameter value="true" name="hptl.MaximizeMode"/>
 <parameter value="false" name="hptl.MinimizeMode"/>
 <parameter value="false" name="hptl.CloseMode"/>
 <parameter value="localhost" name="hptl.ProxyHost"/>
 <parameter value="8080" name="hptl.ProxyPort"/>
 <parameter value="YES" name="hptl.MultiWebPortlet.AppletRemove"/>
 <parameter value="YES" name="hptl.MultiWebPortlet.ObjectRemove"/>
 <parameter value="YES" name="hptl.MultiWebPortlet.ScriptRemove"/>
 <parameter value="Portal"
                     name="hptl.MultiWebPortlet.BinaryDataFetching"/>
 <parameter value="FALSE" name="hptl.MultiWebPortlet.AutoMaxChange"/>
 <meta-info>
   <title>日立製作所</title>
   <description>日立製作所 ホームページ</description>
 </meta-info>
</portlet-entry>