Sun Java ロゴ     前へ      目次      索引      次へ     

Sun ロゴ
Sun Java System Portal Server 6 2005Q4 管理ガイド 

第 12 章
リライタサービスの管理

この章では、Sun Java System Portal Server のリライタサービスの管理方法について説明します。

この章で説明する内容は次のとおりです。


リライタサービスの概要

Sun Java System Portal Server のリライタは、マークアップ言語と JavaScriptTM コードで URL の変換を行うためのエンジンを提供します。デスクトップと Sun JavaTM System Portal Server には URLScraperProviderXMLProvider があります。Secure Remote Access ゲートウェイサービスは、すべてリライタサービスを使用します。

リライタは Web ページの内容をスキャンし、それらの Web ページ上で検出した URL を特定します。リライタはルールセットで定義されるルールの集合を使用して、Web ページでリライトする要素を判断します。リライタが URL を特定すると、次の方法で URL をリライトします。

相対 URL の絶対 URL への拡張

URLScraperProvider はコア Portal Server 製品の一部を構成します。ゲートウェイを使用しないシナリオでは、URLScraperProvider を使用して相対 URL を絶対 URL に拡張することができます。たとえば、ユーザーが次のサイトにアクセスするとします。

<a href=”..//mypage.html”>

リライタはこれを次のように解釈します。

<a href=”http://www.yahoo.com/mail/mypage.html”>

この http://www.yahoo.com/mail/ は収集されたページのベース URL です。

URLScraperProvider の制限

URLScraperProvider は指定された URL のチャネルの表示のみを試みます。ドキュメント URL (ドキュメント) の表示箇所は指定できません。URLScraperProvider は指定された URL の内容を要求するため、HTTP クライアントと同様に機能します。ブラウザの場合と同じく、収集のターゲットとなる URL はネットワーク上でアクセス可能か、プロキシを設定している必要があります。

最終的な URL スクレイパーチャネルは、ミニブラウザでもフレームでもありません。したがって、コンテンツにリンクがある場合、チャネルだけではなくページ全体に影響します。URL スクレイパーチャネルの内部を参照することはできません。チャネル内でリンクを選択すると、ブラウザはリンクを変換し、現在表示されているページ (ポータルサーバーのデスクトップ) をリンク場所のコンテンツに置き換えます。

収集されたチャネルの外観は、オリジナルのコンテンツの作成元によって制御されます。URLScraperProvider はまったくコンテンツを修正せず、URL を通じて入手できる内容だけを表示します。チャネルは本来 HTML テーブル内のセルであるため、テーブルセルに表示できる HTML コンテンツを表示するだけです。すなわち、URLScraperProvider を使用してフレームセットを収集することはできません。これは <FRAMESET> タグを <BODY> タグ内で表示できないためです。URLScraperProvider は、<HEAD> タグ内で JavaScript コードを実行しません。このため、次の収集シナリオは URLScraperProvider については適切ではありません。

元サーバーから cookie が送信される場合、その cookie は Web コンテンツが再収集されるたびに元サーバーに転送されます。このため、ポータルデスクトップが更新または再読み込みされたときに、初回の Web コンテンツの収集時に送信された cookie を元サーバーが取得することになります。しかし、ユーザーが URL スクレイパーチャネル内のリンクをクリックした場合は、これらの cookie は戻されません。

既存 URL へのゲートウェイ URL の追加

Sun Java System Portal Server, Secure Remote Access などのゲートウェイを実装している場合、ゲートウェイはクライアントのプロキシとして動作し、イントラネットサイトにアクセスして、応答をクライアントに返します。リライタはダウンロードされたページで URL を変換し、既存の URL の前にゲートウェイ URL をプレフィックスとして指定して URL が元のサイトではなくゲートウェイを示すようにします。

たとえば、ユーザーが次の URL を使用して mymachine で HTML ページにアクセスしようとする場合、次のように指定します。

<a href=”http://mymachine.intranet.com/mypage.html>

リライタは、次のようにプレフィックスとしてゲートウェイを参照する URL を指定します。

<a href="https://gateway.company.com/http://mymachine.intranet.com/mypage.html>

ユーザーがこのアンカーに関連するリンクをクリックすると、ブラウザはゲートウェイに照会します。ゲートウェイは、mymachine.intranet.com から mypage.html のコンテンツをフェッチします。

リライタを使用して既存の URL のプレフィックスにゲートウェイ URL を指定する詳細については、『Sun Java System Portal Server, Secure Remote Access 6 2005Q4 管理ガイド』を参照してください。


サポートされる URL

リライタは RFC-1738 で指定されるすべての標準 URL のリライトをサポートします。これらの URL はプロトコルが HTTP か HTTPS のいずれの場合も、プロトコルの大文字小文字に関係なくサポートされます。たとえば、hTtP、HTtp、およびhttP はすべて有効です。一部のサンプルの標準 URL を次に示します。

http://www.my.sesta.com
http://www.example.org:8000/imaginary/test
http://www.example.edu/org/admin/people#andy
http://info.example.org/AboutUs/Index/Phonebook?dobbins
http://www.example.org/RDB/EMP?*%20where%20name%%3Dobbins
http://info.example.org/AboutUs/Phonebook
http://user:password@example.com

リライタは標準以外でも基本的な URL の一部については、リライトをサポートします。標準以外の URL を標準形式に変換するための情報は、URL が表示されるページの基本 URL から取り出され、プロトコル、ホスト名、パスを含めることができます。円記号 (¥) は、絶対 URL ではなく相対 URL に含まれる場合のみサポートされます。たとえば、http://sesta.com¥index.html はリライトされますが、http:¥¥sesta.com はリライトされません。

また、http:/sesta.com のようにプロトコルまたはスキーマの後に単一のスラッシュ (/) が付いた URL はリライトされません。


リライタルールとルールセットの定義

リライタは Web ページに表示されるさまざまな要素の URL 部分を修正します。リライタには一連のデフォルトルールが付属し、これに基づいて Web ページのリライトする要素を決定します。さまざまなカテゴリとサブカテゴリのルールの集合は、.dtd ファイルに保存され、「ルールセット」と呼ばれます。リライタルールセットは XML で定義されます。

DTD は /opt/SUNWps/web-src/WEB-INF/lib/rewriter.jar (resources/RuleSet.dtd) に置かれています。ルールセットは URL を特定するために使用されます。デフォルトでは、"/"、../、"http"、"https" などの文字で始まる Web コンテンツの文字列はすべて URL と見なされ、リライタの候補になります。

実装でリライタを設定する場合、ルールセットを作成し、管理コンソールで「Portal Server 設定」の「リライタ」セクションにルールを定義します。ルールセットの作成と修正については、「リライタサービスの管理」を参照してください。Web ページのコンテンツの種類に基づいて、複数のルールを定義します。たとえば、HTML コンテンツをリライトするのに必要なルールは、JavaScript コンテンツをリライトするためのルールと異なります。リライタのルールは、次の広範囲なカテゴリに分類されます。

ルールセットは XML ドキュメントであり、ドキュメント内の XML は正しく作成する必要があります。ルールセットでルールを定義する場合、次のガイドラインを守ってください。

HTML コンテンツのルール

Web ページの HTML コンテンツは、さらに属性、JavaScript トークン、フォーム、アプレットに分類できます。これに従って、HTML コンテンツのルールは次のように分類されます。

HTML コンテンツの属性ルール

属性ルールは、HTML ページでリライトする基本的な属性タグを特定します。リライタは既存の URL を拡張またはプレフィックスを付けて、定義済みのタグをさまざまな形に修正します。デフォルトのルールセットは、次の属性タグをリライトします。

属性ルールの構文は次のとおりです。

<Attribute name="name" [tag="tag" valuePatterns="patterns"]

ここで name は属性を指定します。tag は属性が所属するタグ (すべてのタグに一致させるには * を設定) を指定します。patterns は属性と一致する可能性のあるパターンを指定します。tagvaluePatterns パラメータはオプションです。

HTMLコンテンツの JavaScript トークンルール

Web ページの JavaScript タグに純粋な JavaScript コードを記述することができます。あるいは JavaScript のトークンまたは関数を指定することができます。たとえば、Web ページに別の URL にジャンプする onClick() 関数を指定することができます。ページが正しく機能するために、onClick() 関数の値を変換し、リライトする必要があります。大半の場合、デフォルトのルールセットで指定されたルールで、JavaScript トークンの URL を十分にリライトできます。デフォルトのルールセットは、次の JavaScript トークンをリライトします。

JavaScript トークンルールの構文は次のとおりです。

<JSToken>javascript_function_name</JSToken>

ここで javascript_function_nameonLoadonClick などの関数名です。

HTML コンテンツのフォームルール

ユーザーはフォームを格納した HTML ページを参照できます。input などのフォーム要素は、URL を値として見なします。デフォルトのルールセットは、フォーム要素をリライトしません。フォームルールの構文は次のとおりです。

<Form source="/source.html" name="form1" field="field1"> [valuePatterns="pattern"] />

ここで /source.html はフォームを含む HTML ページの URL です。form1 はフォームの名前、field1 はリライトするフォームのフィールド、pattern はフィールドのリライトする部分を示します。指定されたパターンに従うすべてのコンテンツはリライトされます。

valuePatterns パラメータはオプションです。

HTML コンテンツのアプレットルール

単一の Web ページに複数のアプレットが含まれていたり、また各アプレットに多くのパラメータが指定されていたりするときがあります。アプレットの URL のリライタルールには、次に説明するようにパターンマッチング情報を含める必要があります。

リライタは、ルールに指定された値をアプレットの内容と照合し、必要に応じて URL を修正します。この置換は、ユーザーが特定の Web ページを参照している場合ではなく、サーバーで行われます。値の一部にワイルドカード (*) も使用できます。たとえば、パラメータ名が * であれば、リライタはアプレットでパラメータ名を比較しません。

デフォルトのルールセットは、アプレットパラメータをリライトしません。

アプレットルールの構文は次のとおりです。

<Applet source="sourcehtml.jsp" code="class" param="parameter_name" [valuePatterns="pattern"]

ここで /sourcehtml.jsp はアプレットを含む URL です。class はアプレットクラスの名前、parameter_name は値をリライトする必要があるパラメータ、pattern はフィールドのリライトする箇所を示します。指定されたパターンに従うすべてのコンテンツはリライトされます。

valuePatterns パラメータはオプションです。

JavaScript コンテンツのルール

JavaScript コードのさまざまな部分に URL を指定することができます。リライタは JavaScript コードを直接パースできませんが、URL 部分を判断します。JavaScript プロセッサで URL の解釈を助けるために、一部の特別なルールを記述する必要があります。

URL を含む JavaScript 要素は次のように分類されます。

JavaScript 変数

JavaScript 変数はさらに 5 つのカテゴリに分類されます。

JavaScript URL 変数

URL 変数の右側には URL 文字列が表示されます。デフォルトのルールセットは、次の JavaScript URL 変数をリライトします。

JavaScript コンテンツルールの URL 変数の構文は次のとおりです。

<Variable type="URL">variable_name</Variable>

ここで variable_name はリライトされる変数の名前です。

JavaScript EXPRESSION 変数

EXPRESSIN 変数の右側には式が表示されます。この式の結果が URL です。リライタはこのような式を評価できないため、式を HTML ページに変換するための JavaScript 関数を付加します。この関数はパラメータに式をとり、クライアントブラウザで式を評価します。

デフォルトのルールセットは、JavaScript EXPRESSION 変数 location をリライトします。

JavaScript コンテンツルールの EXPRESSION 変数の構文は次のとおりです。

<Variable type="EXPRESSION">variable_exp</Variable>

ここで variable_exp は式変数です。

JavaScript DHTML 変数

DHTML は、HTML コンテンツを保持する JavaScript 変数です。デフォルトのルールセットは、次の JavaScript DHTML 変数をリライトします。

JavaScript コンテンツルールの DHTML 変数の構文は次のとおりです。

<Variable type="DHTML">variable</Variable>

ここで variable は DHTML 変数です。

JavaScript DJS (ダイナミック JavaScript) 変数

DJS (ダイナミック JavaScript) 変数は、JavaScript コンテンツを保持する JavaScript 変数です。

JavaScript コンテンツルールの DJS 変数の構文は次のとおりです。

<Variable type="DJS">variable</Variable>

ここで variable は DJS 変数です。

変数内の JavaScript コードは、変換するルールがもう 1 つ必要です。

JavaScript システム変数

システム変数はユーザーによって宣言されない変数ですが、JavaScript 標準の一部として使用できます。

デフォルトルールセットは window.location.pathname JavaScript システム変数をリライトします。

JavaScript コンテンツのシステム変数の構文は次のとおりです。

<Variable type="SYSTEM">variable</Variable>

ここで variable はシステム変数です。

JavaScript 関数パラメータ

関数パラメータは 4 つのカテゴリに分類されます。

JavaScript URL パラメータ

URL パラメータは、URLを直接含む文字列パラメータです。

デフォルトのルールセットは、次の JavaScript URL パラメータをリライトします。

URL パラメータの構文は次のとおりです。

<Function type = "URL" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの位置を示します。パラメータの位置は、カンマで区切られます。たとえば、構文の行で最初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータはリライトできません。

JavaScript EXPRESSION パラメータ

EXPRESSION パラメータは、評価後に URL になる関数内の変数です。EXPRESSIN パラメータの構文は次のとおりです。

<Function type = "EXPRESSION" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの位置を示します。パラメータの位置は、カンマで区切られます。たとえば、構文の行で最初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータはリライトできません。

JavaScript DHTML パラメータ

DHTML パラメータは、HTML ページをダイナミックに生成するネイティブ JavaScript メソッドです。たとえば、document.write() メソッドはこのカテゴリに分類されます。

デフォルトのルールセットは、次の JavaScript DHTML パラメータをリライトします。

DHTML パラメータの構文は次のとおりです。

<Function type = "DHTML" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの位置を示します。パラメータの位置は、カンマで区切られます。たとえば、構文の最初と 2 番目のパラメータはリライトする必要がありますが、3 番目のパラメータはリライトされません。

JavaScript DJS パラメータ

HTML の Cascading Style Sheets (CSS) などのダイナミック JavaScript (DJS) パラメータも変換されます。この変換に定義されるルールはありません。これは URL が CSS の url() 関数にのみ表示されるためです。DJS パラメータの構文は次のとおりです。

<Function type = "DJS" name = "function" [paramPatterns="y,y,"] />

ここで function は評価される関数の名前、y はリライトの必要があるパラメータの位置を 示します。パラメータの位置は、カンマで区切られます。たとえば、構文の最初と 2 番 目のパラメータはリライトする必要がありますが、3 番目のパラメータはリライトされま せん。

XML コンテンツのルール

Web ページには XML コンテンツが含まれ、XML には URL が含まれます。リライタは XML コンテンツの URL をリライトできます。

URL を含む XML コンテンツは、次のように分類されます。

XML のタグテキスト

リライタはタグ名に基づいて XML コンテンツを変換します。

デフォルトのルールセットは、次の XML のタグをリライトします。

タグテキストの構文は次のとおりです。

<TagText tag ="attribute" attributePatterns="name=src"/>

ここで attribute はタグの名前、src は属性の名前です。

XML の属性

XML の属性のルールは、HTML の属性のルールに類似しています。詳細については、「HTML コンテンツの属性ルール」を参照してください。リライタは属性とタグ名に基づいて属性の値を変換します。

デフォルトのルールセットは、次の XML の属性をリライトします。

HTML の属性の構文は次のとおりです。

<Attributes>
    <Attribute name="attribute" [valuePatterns="name=src"/>
</Attributes>

ここで attribute はタグの名前、src は属性の名前です。


リライタサービスの管理

Portal Server 6 では、リライタサービスは Sun Java System Access Manager 属性を使用して、リライタルールセットの持続的ストレージを提供しています。リライタルールセットは、Web ページ内のコンテンツをリライタでどのようにリライトするかを定義します。Sun Java System Access Manager 管理コンソールを使用して、複数のリライタルールセットを Sun Java System Access Manager サービス属性値として定義および保存できます。

コマンド行を使用してリライタを管理することもできます。rwadmin コマンドについては、『Sun Java System Portal Server 6 2005Q4 Technical Reference Guide』を参照してください。

Sun Java System Access Manager 管理コンソールは、リライタルールセットの概念を持たないため、Portal Server はカスタマイズされたサービス管理プラグインモジュールを使用して、リライタルールセットを管理します。すべてのリライタルールセットは、Sun Java System Access Manager の組織に対してグローバルです。特定の組織レベルでのルールセットの作成はできません。


URLScraperProvider は、HTML テーブルセル内で有効なコンテンツのみを収集できます。収集する HTML マークアップに、<body><base>、特定の JavaScript プロシージャなどのような、テーブルセル内で表示できないタグまたは JavaScript が含まれていると、「デスクトップ」ページは正常に表示されない場合があります。収集するコンテンツを定義する場合、コンテンツが有効な HTML であることを確認するようにしてください。詳細は、「URLScraperProvider の制限」を参照してください。


リライタ URLScraperProvider を SSL 用に設定する

リライタの URLScraperProvider を使用して、SSL ページを収集し、安全なセッションでアクセスできるように URL をリライトできます。

  1. Portal Server をインストールしたサーバーに対して、信頼のできるデータベースを Web サーバー管理コンソールで次のように初期化します。
    1. ブラウザから、次の URL を入力して Web サーバー管理ページにアクセスします。
    2. http://servername:8088

    3. 管理者としてログインし、「セキュリティー」タブをクリックします。
    4. データベースのパスワードを 2 度入力し、「了解」を選択します。
  2. 次の手順でパスワードファイルを作成します。
    1. ディレクトリを /AccessManager-base/SUNWam/config に変更します。
    2. 非表示のテキストファイル .wtpass を作成します。
    3. 信頼できるデータベースを初期化したときに指定したパスワードを入力します。
  3. URLScraperProvider を使用してアクセスした Web サーバーに使用される証明書に、ルート CA がインストールされていない場合、/AccessManager-base/SUNWam/lib/AMConfig-instance_nickname.properties ファイルに次の行を追加します。
  4. com.sun.am.jssproxy.trustAllServerCerts=true

    このオプションは、証明書が信用できることを JSS に示します。

  5. Portal Server を再起動します。

デフォルトテンプレートからルールセットを新規作成する


Access Manager 管理コンソールに関する最新の詳細情報については、『Sun Java System Access Manager 2005Q4 管理ガイド』を参照してください。


  1. Sun Java System Access Manager 管理コンソールに、管理者としてログインします。
  2. ロケーションパネルで「サービス設定」を選択します。
  3. ナビゲーションパネルの「リライタ」の隣にあるプロパティーの矢印をクリックします。
  4. 現在定義されている属性のリストが、データパネルに表示されます。

  5. 「新規」をクリックします。
  6. これによって、修正が可能なルールセットのテンプレートが表示されます。

  7. <RuleSet id="ruleset_template"> 行を編集し、default_ruleset を新しいルールセットの名前で置き換えます。
  8. ルールセットテンプレート内のルールを追加または修正し、必要に応じて URL をリライトします。
  9. 「作成」をクリックし新しいルールセットを作成します。
  10. 成功した場合、最初のページと現在定義されているすべてのルールセットのリストが表示されます。これには作成したルールセットが含まれています。

既存のルールセットを編集する


Access Manager 管理コンソールに関する最新の詳細情報については、『Sun Java System Access Manager 2005Q4 管理ガイド』を参照してください。


  1. Sun Java System Access Manager 管理コンソールに、管理者としてログインします。
  2. ロケーションパネルで「サービス設定」を選択します。
  3. ナビゲーションパネルの「リライタ」の隣にあるプロパティーの矢印をクリックします。
  4. 現在定義されている属性のリストが、データパネルに表示されます。

  5. 編集するルールセットの「編集」リンクをクリックします。
  6. 編集するルールセットの XML が表示されます。

  7. ルールセットテンプレート内のルールを追加または修正し、必要に応じて URL をリライトします。
  8. (省略可能) ルールセットの名前を変更するには、<RuleSet id="ruleset_template"> 行を編集し、名前をルールセットの名前に置き換えます。
  9. 「保存」をクリックします。

ルールセットをダウンロードする


Access Manager 管理コンソールに関する最新の詳細情報については、『Sun Java System Access Manager 2005Q4 管理ガイド』を参照してください。


ルールセットをダウンロードし、ファイルに保存することができます。

  1. Sun Java System Access Manager 管理コンソールに、管理者としてログインします。
  2. ロケーションパネルで「サービス設定」を選択します。
  3. ナビゲーションパネルの「リライタ」の隣にあるプロパティーの矢印をクリックします。
  4. 現在定義されている属性のリストが、データパネルに表示されます。

  5. ファイルに保存するルールセットの「ダウンロード」リンクをクリックします。
  6. ファイル名を指定し、保存します。

ルールセットをアップロードする


Access Manager 管理コンソールに関する最新の詳細情報については、『Sun Java System Access Manager 2005Q4 管理ガイド』を参照してください。


ルールセットのファイルをシステムにアップロードできます。

  1. Sun Java System Access Manager 管理コンソールに、管理者としてログインします。
  2. ロケーションパネルで「サービス設定」を選択します。
  3. ナビゲーションパネルの「リライタ」の隣にあるプロパティーの矢印をクリックします。
  4. 現在定義されている属性のリストが、データパネルに表示されます。

  5. リストされるルールセットの隣にある「アップロード」リンクをクリックします。
  6. 新規アップロードするルールセットのファイル名を参照して指定するか、直接入力します。
  7. 「アップロード」をクリックします。
  8. ファイル内の <RuleSet id="ruleset_template"> 行で定義された名前がシステムのルールセット名と一致する場合、そのルールセットファイルはファイルの内容で置き換えられます。<RuleSet id="ruleset_template"> 行で定義される名前が固有の場合、新しいルールセットがその名前で作成され、リストに追加されます。

既存のルールセットを削除する


Access Manager 管理コンソールに関する最新の詳細情報については、『Sun Java System Access Manager 2005Q4 管理ガイド』を参照してください。


  1. Sun Java System Access Manager 管理コンソールに、管理者としてログインします。
  2. ロケーションパネルで「サービス設定」を選択します。
  3. ナビゲーションパネルの「リライタ」の隣にあるプロパティーの矢印をクリックします。
  4. 現在定義されている属性のリストが、データパネルに表示されます。

  5. 削除するルールセットの隣にあるチェックボックスをクリックします。
  6. 複数のルールセットを選択できます。

  7. 「削除」をクリックします。
  8. 確認のメッセージが表示されます。

  9. 「はい」をクリックして選択したルールセットを削除します。

デフォルトのルールセットを復元する

誤ってデフォルトのルールセットを削除した場合、次のようにして復元できます。

rwadmin store --runasdn "uid=amadmin, ou=people, o=sesta.com, o=isp" --password "testing123" /resources/DefaultRuleSet.xml

ここで、"/resources/DefaultRuleSet.xml"rewriter.jar ファイルに保存されたルールセットの場所です。


インストール時にパッケージされたデフォルトのルールセットが復元されます。デフォルトのルールセットをカスタマイズした場合、変更は復元されません。




前へ      目次      索引      次へ     


Copyright 2005 Sun Microsystems, Inc. All rights reserved.