5.4.2 Web App PortletおよびWeb Page Portlet作成時の注意事項

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

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

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

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

表5-6 レスポンスコードの取り扱い(Web App PortletおよびWeb Page Portlet)

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

注※1 Web App Portletでは,POST後に302が返却された場合,ユーザに確認しないでリダイレクトします。なお,一般的なWebブラウザと同様にPOST後の302レスポンスコードに対応します。

注※2 Web Page Portletは対応していません。


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

表5-7 レスポンスヘッダフィールドの取り扱い(Web App PortletおよびWeb Page Portlet)

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

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

表5-8 リクエストヘッダフィールドの取り扱い(Web App PortletおよびWeb Page Portlet)

ヘッダフィールド内容
Hostリクエスト先のホスト名を設定します。
Accept対応するMIMEタイプを設定します。
Accept-Encoding対応するエンコーディングを設定します。
Accept-Language対応する言語を設定します。
User-AgentリクエストしたUser-Agentを設定します。Web App Portletでは,User-Agentの内容をuCosminexus Portal Framework独自のUser-Agentの内容に設定できます。この設定は,Portal ManagerのWebポートレット設定時に定義できます。詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。
If-Modified-Sinceコンテンツの最終更新時刻を設定します。
CookieSet-Cookie1でサーバに保存されたCookieを設定します。Web Page Portletは対応していません。
Cookie2Set-Cookie2でサーバに保存されたCookieを設定します。Web Page Portletは対応していません。
Authorizationベーシック認証に必要な認証情報を設定します。Web Page Portletは対応していません。
Proxy-Authorizationプロキシ認証に必要な認証情報を設定します。Web Page Portletは対応していません。

(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.でのエンコーディング指定を推奨します。

●ポータル内のHTMLコンテンツのエンコーディング指定

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

  1. META要素中のContent-Type指定のcharsetパラメタ
  2. 自動判定

自動判定では,正しいエンコーディング方法を決定できないことがあるので,META要素中のContent-Type指定のcharsetパラメタでのエンコーディング指定を推奨します。外部Webサイトの方法と異なり,ポータル内のHTMLコンテンツは,HTTPレスポンスヘッダでエンコーディングを指定できません。

(c) プロキシ連携

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

(d) リダイレクト

Web App Portletレスポンスコードの301,302,303,307に対応します。Web App PortletおよびWeb Page Portletでは,Portal ManagerのWebポートレット設定時に最大リダイレクト回数を設定できます。0から10の値を指定できます。詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(2) 認証

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

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

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

ベーシック認証

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

プロキシ認証

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

フォーム認証

Webサーバへのリクエスト情報を基にシングルサインオンを実現します。Web App Portletの場合,シングルサインオン後は,認証の成功・失敗にかかわらず「ログイン失敗」のリンクが表示されます。認証するサイトによって,認証画面を通過する必要がある場合,シングルサインオンはできません。パスワードの入力ミスなどによってフォーム認証に失敗した場合は,認証情報をクリアして,再度認証情報を入力する必要があります。

Web App Portletの場合は,「ログイン失敗」のリンクをクリックして表示される画面に従って,認証情報を入力します。

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

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

Web App Portletは,フォーム認証定義ファイルで,フォーム認証情報を設定します。Web App Portletを使用する場合のフォーム認証の設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「フォーム認証定義ファイル(formbase-auth.cfg)」の説明を参照してください。

(3) URL変換

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

HTMLコンテンツ中に含まれる画像などのインラインオブジェクトは,通常uCosminexus Portal Frameworkを経由しないで,Webブラウザが直接Webサーバから取得します。Web App Portletでは,インラインオブジェクトの取得先をポートレット登録時にPortal Managerで設定できます。プロキシやコンテンツを格納するWebサーバがアクセス制御している場合,および各種認証に対してシングルサインオンをする場合は,Web App Portletではインラインオブジェクトの取得先を[ポータルサーバを経由して取得]に設定してください。

インラインオブジェクトの取得先の設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(4) キャッシュ制御

Webポートレットでは,uCosminexus Portal Framework内でHTMLコンテンツをキャッシングします。キャッシングは,HTTP1.1と同機能に基づいています。キャッシュ範囲はレスポンスのボディだけです。インラインオブジェクトは,キャッシュ対象となりません。

Web App Portletでは,ポートレットごとにキャッシュ制御の設定ができます。キャッシュ制御の設定は,Webポートレットの登録時にPortal Managerで,[有効]または[無効]を設定できます。デフォルトでは,[有効]に設定されています。キャッシュ制御の設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

次の場合は,キャッシュ制御を無効にしてください。サーバからのCache-Controlフィールドを無視して強制的にコンテンツを取得します。

(a) コンテンツの有効期限

コンテンツの有効期限を基にキャッシュ検証されます。コンテンツの有効期限は,Portal ManagerのWebポートレット設定時に指定できます。詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

コンテンツの有効期限は,次の優先順位で決定します。

  1. HTTPレスポンスヘッダのCache-Controlフィールド指定
    ローカルコンテンツの場合は指定できません。
  2. META要素中のCache-Control指定
  3. ポートレット定義ファイルのWebPageエントリで指定されるデフォルト動作指定

(b) キャッシュ容量

キャッシュには,メモリキャッシュとディスクキャッシュがあり,それぞれ格納するコンテンツの最大数がプロパティファイルで設定できます。プロパティファイル(PortalResources.properties)の格納場所を次に示します。

{PROJECT_HOME}¥WEB-INF¥conf

プロパティファイル(PortalResources.properties)の詳細は,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「PortalResources.propertiesの詳細」の説明を参照してください。

キャッシュ容量の設定を次の表に示します。

表5-9 キャッシュ容量の設定

属性内容デフォルト値
jp.co.hitachi.soft.portal.webpage.cache.directoryディスクキャッシュの格納ディレクトリ{PROJECT_HOME}/WEB-INF/cosmi/webpage/cache
jp.co.hitachi.soft.portal.webpage.cache.memMaxSizeメモリキャッシュに格納する最大コンテンツ数16
jp.co.hitachi.soft.portal.webpage.cache.diskMaxSizeディスクキャッシュに格納する最大コンテンツ数128

メモリキャッシュおよびディスクキャッシュは,ご使用の環境に合わせた妥当値を設定してください。

(c) キャッシュクリア

キャッシュクリアでは,キャッシュ機能を使用時に登録済みのコンテンツを更新した場合,画面表示を最新にします。キャッシュクリアは,すべてのキャッシュエントリに対して実行されます。ポートレットごとのキャッシュ検証はできません。キャッシュクリアの通知はPortal Managerの[キャッシュクリアの実行]で設定します。

キャッシュクリアは,Webポートレットにキャッシュの強制検証を通知します。キャッシュクリアはローカルホストだけに有効です。クラスタ構成の場合はホストごとにキャッシュクリアを実行する必要があります。

キャッシュクリアは,Portal Manager,または強制検証コマンドで実行します。

Portal Managerを使用してキャッシュをクリアする手順については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「キャッシュクリアの実行」の説明を参照してください。

強制検証コマンドの書式を次に示します。

cpfwvali.bat プロジェクト名称

なお,強制検証コマンドを使用するためには次の環境変数の設定を行ってください。

サーブレットエンジンモードの場合
変数名
COSMI_PORTAL_HOME{Cosminexusインストールディレクトリ}¥CC¥web¥containers¥{サーバ名称}¥webapps
J2EEモードの場合
変数名
COSMI_PORTAL_HOME{Cosminexusインストールディレクトリ}¥CC¥server¥Public¥Web¥{サーバ名称}

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

Web App PortletおよびWeb Page Portletは,指定したWebページをポータル画面に取り込む際,BODY本体内に記述できない開始,終了タグや要素が取り除かれます。要素フィルタリングは,Webポートレットの登録時に,フィルタリングするかしないかを設定できます。タグ,要素は取り除かれますが,コンテンツを表示するために必要なBASE要素やエンコーディング設定,およびキャッシュ制御に必要なMETA要素の一部はコンテンツ作成のために参照されます。

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

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

表5-10 要素フィルタリングで取り除かれるタグ,要素の一覧

取り除かれるタグ,要素フィルタリングの設定
DOCTYPE宣言×
HTML開始,終了タグ×
HEAD要素
BODY開始,終了タグ×
FRAMESET要素 (NOFRAMES要素の本体は除く)×
APPLET要素
OBJECT要素
SCRIPT要素(対応するNOSCRIPT要素の本体は除く)
onで始まるイベント属性
(凡例)
○:設定できます。
×:設定できません。

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

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

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

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

なお,コンテンツフィルタリングの設定は,Webポートレットの種類によって異なります。対応するフィルタリングの設定を次に示します。

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

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

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

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

コメントでのディレクティブ指定
<!--    -->で囲まれたコメント内にあるキーワードでフィルタリング範囲を指定します。BODY本体の既存のコメント,または新規に追加したコメントをディレクティブとして使用できます。要素フィルタリングで取り除かれる要素内にあるディレクティブは,使用できません。
フィルタリング範囲は,開始キーワードを含むコメントから,それ以降で最初に対応する終了キーワードを含むコメントまでです。キーワードはポートレットごとに指定できます。
開始キーワードと終了キーワードを一組で指定します。コメント中に含まれる開始キーワードと終了キーワードは,コンマで区切って指定します。
同一コメント中に開始キーワードが複数ある場合は,先に合致したキーワードを使用します。キーワードとして「,」,「"」,および「|」は使用できません。
ディレクティブを複数指定できます。フィルタリング範囲が重複しないようにキーワードを設定します。
開始ディレクティブに対応する有効な終了ディレクティブがない場合は,開始ディレクティブ以降のコンテンツすべてがフィルタリング対象となります。
ディレクティブとして,開始キーワードに"What's New"を,終了キーワードに"Information"を指定したフィルタリング削除の例を次の図に示します。

図5-3 コメントでのフィルタリング削除

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

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

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

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

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

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

[図データ]

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

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

(8) その他の注意事項

(a) ネームスペース

Web App PortletおよびWeb Page Portletでは,ポータル画面は複数のポートレットで構成されているためポートレット間で名称が重複する場合があります。そのため,次に示す属性はポートレット間で異なる値を指定してください。

また,Web App Portletでは,Name属性名にポートレット名称を自動的に追加して,異なる名称に変更できます。スクリプトを使用する場合は,Webポートレット登録時にPortal Managerの[ポートレットの設定]画面でネームスペース自動解決機能を[無効]に設定します。ネームスペース自動解決機能の設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

ポートレットからPOSTによる外部Webサーバへのリクエスト時には,属性名からポートレット名称を削除します。

(b) スタイル

ポータルの画面イメージはスタイルシートで決定します。そのため,特別に強調する場合以外で,インラインスタイルなどの個別のスタイルを指定しないでください。ポータル画面のスタイルやフォントを変更するには,次のスタイルシートを変更してください。

{PROJECT_HOME}¥css¥default.css

(c) FRAMESET

Web App PortletおよびWeb Page Portletでは,FRAMESETを使用したHTMLコンテンツは,表示できません。

FRAMESETを使用した外部のWebサイトを取り込んだ場合,NOFRAMESの内容を表示します。NOFRAMESがない場合は何も表示しません。

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

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

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

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

(f) 最大化表示

最大化表示は,SCRIPTを使用している場合は設定しないでください。

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

Web App PortletをPortal Managerで登録する際に指定するプロキシサーバは,Web App Portletが使用するすべてのページを参照できるプロキシサーバを指定してください。プロキシサーバの指定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

使用するマシン環境によっては,インターネット向けプロキシサーバとイントラネット向けプロキシサーバを区別している場合があります。この場合,インターネットのコンテンツとイントラネットのコンテンツをWeb App Portletで統合できません。

(h) Web App Portletに取り込むWebコンテンツ

Web App Portletに取り込むWebコンテンツで,HTML4.01に従わないタグ(<br/>など)がある場合正しく表示されないことがあります。そのため,Web App Portletに取り込むWebコンテンツには,HTML4.01に従わないタグを使用しないでください。HTML4.01に従わないタグを使用した場合,uCosminexus Portal Frameworkは次に示す例のようにタグを変換します。

(例)

<br/>のように"/"で終わるタグは,<br>>のように"/"を">"に変換します。

(i) Web App Portletを使用する場合のURL形式

Web App Portletを使用する場合,ポートレット定義のURL形式やコンテンツのURL形式が次に示す二つの条件に合うとき,コンテンツは正しく表示されません。

(例)

http://hostname?querya=aaa&queryb=bbb

この問題は,次の例のようにディレクトリのウェルカムメッセージに相当するコンテンツのファイル名を指定することで回避できます。

(例)

http://hostname/index.htm?querya=aaa&queryb=bbb

(j) Web App Portletでのインラインオブジェクトの取得先

Web App Portletを使用する場合,Portal Managerでインラインオブジェクトの取得方法を[ポータルサーバを経由して取得]に設定したとき,インラインオブジェクトを取得できないことがあります。この場合,Portal Managerでインラインオブジェクトの取得方法を[webサーバから直接取得]に変更することで取得できるようになります。インラインオブジェクトの取得先の設定方法については,マニュアル「uCosminexus Portal Framework システム管理者ガイド」の「Webポートレットの設定」の説明を参照してください。

(k) Web App PortletおよびWeb Page Portletでのコンテンツ不正表示

Web App PortletまたはWeb Page Portletを使用している場合に,相手先コンテンツから「<TABLE>タグと<FORM>タグの対応が誤っているコンテンツ」が返却されたとき,Web App PortletまたはWeb Page Portletのコンテンツは正しく表示されません。

この問題は,コンテンツの<TABLE>タグと<FORM>タグの対応を正しく修正することで回避できます。