Sun Java System Portal Server Secure Remote Access 6 2005Q4 管理ガイド |
第 3 章
プロキシレットとリライタこの章では、プロキシレットとリライタについて説明します。これらのコンポーネントを使用して、イントラネットの Web ページにゲートウェイ経由でアクセスできます。この機能は、さまざまな方法で実現します。たとえば、Web ページは、プロキシレットではなくリライタがパースします。
プロキシレットについては、以下のトピックで説明します。
リライタについては、以下のトピックで説明します。
プロキシレットの概要プロキシレットとは、それ自体でクライアントマシンのプロキシサーバーを設定する Java アプレットです。プロキシレットは、プロキシ設定がローカルのプロキシサーバーまたはプロキシレットをポイントするように、クライアントマシンのプロキシ自動設定 (PAC) ファイルを読み取り、変更します。
プロキシレットはゲートウェイからのトランスポートモードを継承します。ゲートウェイが SSL に基づいて動作するように設定されている場合には、クライアントマシンとゲートウェイまたは宛先サーバーの間でチャネルのセキュリティーが確保されます。暗号化する場合、プロキシレットは、クライアントの JVM が1.4 以降の場合または必要な jar ファイルがクライアントマシン上にある場合に JSSE API を使用します。それ以外の場合には、KSSL API が使用されます。復号化は、クライアントマシン上で行われます。
ゲートウェイにリダイレクトされる URL のドメインとサブドメインは、ゲートウェイプロファイルに指定されています。ゲートウェイプロファイルに指定されていないドメインが URL に含まれる場合、その要求はインターネットにリダイレクトされます。
ゲートウェイで PDC (Personal Digital Certificate) が有効の場合、プロキシレットはクライアント側の認証をサポートします。PDC が有効化どうかを確認する方法については、「クライアント情報の取得」を参照してください。
プロキシレットは、クライアントの IP アドレスまたはプロキシのホスト名とポートが指定されている Access Manager 管理コンソールから有効にします。プロキシレットが有効になると、クライアントマシンが次の点を満たしているかどうかが確認されます。
これらの要件を満たしている場合には、小さなアプレットがダウンロードされ、クライアントマシン上で起動されます。クライアントの JRE が 1.3.1 以降でない場合には、ユーザーがインターネット接続と管理者権限の両方を持っていれば、プロキシレットと一緒に JRE が自動的にダウンロードされます。
プロキシレットが使用される場合、プロキシレットはプロキシ設定を PAC (Proxy Auto Configuration) ファイルから取得します。
プロキシレットを使用する利点
リライタと異なり、プロキシレットはインストール後の変更をほとんど、またはまったく必要としません。Microsoft Exchange Server などのサードパーティーソフトウェアとの統合も簡単に行うことができます。プロキシレットは Web コンテンツを扱わないので、ゲートウェイのパフォーマンスも向上します。プロキシレットはコンテンツまたはデータを変更しないので、ユーザーは tar および gzip ファイルなど任意のコンテンツをダウンロードできます。
プロキシレットの設定
プロキシレットを有効にして設定する方法については、第 12 章「プロキシレットの設定」を参照してください。
注
プロキシレットを実行する適切な Java 仮想マシン (JVM) がない場合、ブラウザは sun.com サイトに接続して Java Runtime Environment (JRE) をダウンロードします。ユーザーのブラウザ設定に正しい値が設定されていない場合、またはユーザーがインターネットにアクセスしないで直接プロキシ設定を使用している場合、プロキシレットはダウンロードできません。
HTTPS のサポート
プロキシレットによる HTTPS のサポートは、次のようになっています。
- 復号化は、クライアントマシンで行われます。
- ユーザーは、SSL モードで稼働している宛先サーバーにアクセスできます。
- クライアント証明書は、宛先サーバーに直接提示されます。
- ゲートウェイでは、基本認証のシングルサインオン (SSO) はサポートされていません (ゲートウェイは SSO 情報を HTTP ヘッダーに挿入できない)。
- URL ベースのアクセス制御はサポートされていないため、ホストベースのアクセス制御のみが可能です。
- ゲートウェイの前にある外部アクセラレータと外部逆プロキシは、現時点ではサポートされていません。
- このサポートは、Portal Server が HTTPS を使用する場合のプロキシレットに対するものではありません。
リライタの概要SRA のリライタコンポーネントを使用すると、エンドユーザーは Web ページの URI (Uniform Resource Identifier) リファレンスをゲートウェイをポイントするように変更することによって、イントラネットをブラウズすることができます。URI は、登録されているネームスペースにネームをカプセル化し、それにネームスペースのラベルを付ける方法を定義します。最も一般的な URI は URL (Uniform Resource Locator) です。リライタは HTTP または HTTPS だけをサポートし、このサポートは、プロトコルでの大文字の使用に影響されません。リライタは、相対 URL の一部として使用される場合にだけバックスラッシュをサポートします。
次に例を示します。
http://abc.sesta.com¥index.html は書き換えられます。
次の URL は書き換えられません。
http:¥¥abc.sesta.com
http:/abc.com
文字セットのエンコーディングHTTP の規格では、HTTP ヘッダーまたは HTML メタタグに Web ページの文字セットを指定する必要があります。ただし、この情報が指定されていないこともあります。文字セットがわからない場合には、データのエンコーディングが設定されず、作成者が意図したようにデータが表示されません。
文字セットを検出するために、サードパーティー製品を使用することもできます。この製品を有効にするには、JavaTM Enterprise System アクセサリ CD から SUNWjchdt パッケージをインストールします。この製品は、インストールするとリライタによって検出され、必要に応じて使用されます。
注
この製品を使用すると、パフォーマンスが低下することがあるため、必要な場合にだけインストールしてください。インストール、設定、および使用方法については、jcharset_readme.txt を参照してください。
リライタの使用例ユーザーがゲートウェイを通じてイントラネット Web ページにアクセスしようとするときに、Web ページはリライタによって使用可能となります。リライタは、次のコンポーネントによって使用されます。
URL スクレイパー
URL スクレイパープロバイダは、設定されている URI からコンテンツを取得し、それをブラウザに送信する前にすべての相対 URI を絶対 URI に展開します。
たとえば、コンテンツを持つ次のサイトにユーザーがアクセスしようとするとします。
<a href="../mypage.html">
リライタはこれを次のように変換します。
<a href="http://yahoo.com/mypage.html">
ここで、http://yahoo.com/test/ はページのベース URL です。
URL スクレイパープロバイダの詳細については、『Portal Server 管理ガイド』を参照してください。
ゲートウェイ
ゲートウェイは、インターネットポータルからコンテンツを取得し、そのコンテンツをブラウザに送信する前に、既存の URI の前にゲートウェイ URI プレフィックスを追加します。これにより、そのブラウザからの以後の URI 要求はゲートウェイに向けられます。
たとえば、インターネット上のマシンにある 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 のコンテンツをフェッチします。
ゲートウェイはいくつかのルールを使用して、フェッチされた Web ページの書き換える要素を判断します。
ルールセットの記述ルールの定義は、「サービス設定」タブの「Portal Server 設定」セクションで行います。
ルールセットの定義については、『Portal Server 管理ガイド』を参照してください。新しいルールセットを作成したら、必要なルールを定義する必要があります。
ここでは、次の項目について説明します。
パブリックインタフェース (ルールセット DTD)
ルールセット DTD の例を示します。
<?xml version="1.0" encoding="UTF-8"?>
<!--
The following constraints are not represented in DTD, but taken care programatically
1. In a Rule, All Mandatory attributes cannot be "*".
2. Only one instance of the below elements is allowed, but in any order.
1)HTMLRules
2)JSRules
3)XMLRules
3. ID should alway be in lower case.
-->
<!ENTITY % eURL 'URL'>
<!ENTITY % eEXPRESSION 'EXPRESSION'>
<!ENTITY % eDHTML 'DHTML'>
<!ENTITY % eDJS 'DJS'>
<!ENTITY % eSYSTEM 'SYSTEM'>
<!ENTITY % ruleSetElements '(HTMLRules | JSRules | XMLRules)?'>
<!ENTITY % htmlElements '(Form | Applet | Attribute)*'>
<!ENTITY % jsElements '(Variable | Function)*'>
<!ENTITY % xmlElements '(Attribute | TagText)*'>
<!ELEMENT RuleSet (%ruleSetElements;,%ruleSetElements;,%ruleSetElements;)>
<!ATTLIST RuleSet
id ID #REQUIRED
extends CDATA "none"
>
<!-- Rules for identifying rules in HTML content -->
<!ELEMENT HTMLRules (%htmlElements;)>
<!ELEMENT Form EMPTY>
<!ATTLIST Form
name CDATA #REQUIRED
field CDATA #REQUIRED
valuePatterns CDATA ""
source CDATA "*"
>
<!ELEMENT Applet EMPTY>
<!ATTLIST Applet
code CDATA #REQUIRED
param CDATA "*"
valuePatterns CDATA ""
source CDATA "*"
>
<!-- Rules for identifying rules in JS content -->
<!ELEMENT JSRules (%jsElements;)>
<!ELEMENT Variable EMPTY>
<!ATTLIST Variable
name CDATA #REQUIRED
type (%eURL; | %eEXPRESSION; | %eDHTML; | %eDJS; | %eSYSTEM;) "EXPRESSION"
source CDATA "*"
>
<!ELEMENT Function EMPTY>
<!ATTLIST Function
name CDATA #REQUIRED
paramPatterns CDATA #REQUIRED
type (%eURL; | %eEXPRESSION; | %eDHTML; | %eDJS;) "EXPRESSION"
source CDATA "*"
>
<!-- Rules for identifying rules in XML content -->
<!ELEMENT XMLRules (%xmlElements;)>
<!ELEMENT TagText EMPTY>
<!ATTLIST TagText
tag CDATA #REQUIRED
attributePatterns CDATA ""
source CDATA "*"
>
<!ELEMENT Attribute EMPTY>
<!ATTLIST Attribute
name CDATA #REQUIRED
tag CDATA "*"
valuePatterns CDATA ""
type (%eURL; | %eDHTML; | %eDJS; ) "URL"
source CDATA "*"
>
注
ルールの値の一部としてアスタリスク (*) を使用できます。ただし、すべての必須属性では、値に * だけを指定することはできません。このようなルールは無視されますが、メッセージは RuleSetInfo ログファイルに記録されます。このログファイルについては、「デバッグファイル名」を参照してください。
XML DTD の例
ここでは、ルールセットの例を示します。リライタがこれらのルールをどのように解釈するかについては、「ケーススタディー」を参照してください。
<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
Rules for integrating a mail client with the gateway.
-->
<!DOCTYPE RuleSet SYSTEM "jar://rewriter.jar/resources/RuleSet.dtd">
<RuleSet type="GROUPED" id="owa">
<HTMLRules>
<Attribute name="action"/>
<Attribute name="background" />
<Attribute name="codebase" />
<Attribute name="href"/>
<Attribute name="src" />
<Attribute name="lowsrc" />
<Attribute name="imagePath" />
<Attribute name="viewClass" />
<Attribute name="emptyURL" />
<Attribute name="draftsURL" />
<Attribute name="folderURL" />
<Attribute name="prevMonthImage" />
<Attribute name="nextMonthImage" />
<Attribute name="style" />
<Attribute name="content" tag="meta" />
</HTMLRules>
<JSRules>
<!-- Rules for Rewriting JavaScript variables in URLs -->
<Variable name="URL"> _fr.location </Variable>
<Variable name="URL"> g_szUserBase </Variable>
<Variable name="URL"> g_szPublicFolderUrl </Variable>
<Variable name="URL"> g_szExWebDir </Variable>
<Variable name="URL"> g_szViewClassURL </Variable>
<Variable name="URL"> g_szVirtualRoot </Variable>
<Variable name="URL"> g_szBaseURL </Variable>
<Variable name="URL"> g_szURL </Variable>
<Function name="EXPRESSION" name="NavigateTo" paramPatterns="y"/>
</JSRules>
<XMLRules>
<Attribute name="xmlns"/>
<Attribute name="href" tag="a"/>
<TagText tag="baseroot" />
<TagText tag="prop2" />
<TagText tag="prop1" />
<TagText tag="img" />
<TagText tag="xsl:attribute"
attributePatterns="name=src" />
</XMLRules>
</RuleSet>
ルールの記述手順
次に、ルールを記述するための一般的な手順を示します。
- コンテンツの書き換えが必要な HTML ページを含むディレクトリを特定します。
- これらのディレクトリで、書き換えが必要なページを特定します。
- 各ページで書き換えが必要な URL を特定します。「http」および「/」を検索すると、ほとんどの URL を簡単に見つけることができます。
- URL のコンテンツタイプ (HTML、JavaScript、または XML) を識別します。
- これらの各 URL の書き換えに必要なルールを記述するには、Access Manager 管理コンソールの「Portal Server 設定」の「リライタ」で必要なルールセットを編集します。
- これらのルールを結合し、そのドメインのルールセットにまとめます。
ルールセットのガイドライン
次の点に注意してください。
- すべてのルールは <RuleSet>、</RuleSet> タグで囲む必要があります。
- ルールセットの <HTMLRules> </HTMLRules> セクションに、HTML コンテンツの書き換えに必要なすべてのルールを指定します。
- ルールセットの <JSRules> </JSRules> セクションに、JavaScript コンテンツの書き換えに必要なすべてのルールを指定します。
- ルールセットの <XMLRules> </XMLRules> セクションに、XML コンテンツの書き換えに必要なすべてのルールを指定します。
- イントラネットページで、書き換えの必要のある URL を特定し、ルールセットの適切なセクション (HTML、JSRules、または XMLRules) に必要なルールを指定します。
- 必要なドメインにルールセットを割り当てます。詳細については、「URI とルールセットのマッピングリストの作成」を参照してください。
- ゲートウェイを再起動して変更を適用します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
ルールセットのルート要素の定義
ルールセットのルート要素には、次の 2 つの属性があります。
再帰機能の使用
リライタは、再帰機能を使用して、一致する文字列パターンの最後まで同じパターンを検索します。
たとえば、リライタが次の文字列をパースする場合を考えます。
<a href="src=abc.jpg,src=bcd.jpg,src=xyz.jpg>
次のルールがあるとします。
<Attribute name="href" valuePatterns="*src=**"/>
このルールは、最初に見つかったパターンだけを次のように書き換えます。
<a href="src=http://jane.sun.com/abc.jpg>
一方、次のように再帰オプションを使用した場合を考えます。
<Attribute name="href" valuePatterns="REC:*src=**"/>;
リライタは再帰機能を使用して、一致する文字列パターンの最後まで同じパターンを検索します。この出力は次のようになります。
<a href="src=http://jane.sun.com/abc.jpg,src=http://jane.sun.com/bcd.jpg,src=http://jane.sun.com/xyz.jpg>
言語ベースのルールの定義 (ルールの定義)ルールは、次の言語に基づきます。
HTML コンテンツのルール
Web ページの HTML コンテンツは、さらに属性、フォーム、およびアプレットに分類されます。これに従って、HTML コンテンツのルールは次のように分類されます。
HTML コンテンツの属性ルール
このルールは値を書き換える必要のあるタグの属性を特定します。属性値には、簡易 URL、JavaScript、DHTML コンテンツがあります。
例
この節は、次の項目から構成されています。
属性ルールの構文
<Attribute name="attributeName" [tag="*" valuePatterns="" source="*" type="URL|DHTML|DJS"]/>
各表記の意味は次のとおりです。
attributeName は属性名です (必須)。
tag は、この属性が属するタグです (省略可能、デフォルトは任意のタグを意味する *)。
valuePatterns については、「ルールでのパターンマッチングの使用」を参照してください。
source は、この属性が定義されているページの URI を指定します (省略可能、デフォルトは任意のページを意味する *)。
type は関数のタイプを指定します (省略可能)。これには次の値があります。
属性ルールの例
ページのベース URL が次の URL であると仮定します。
http://mymachine.intranet.com/mypage.html
ページコンテンツ
<a href="http://mymachine.intranet.com/mypage.html>
ルール
<Attribute name="href"/>
または
<Attribute name="href" tag="a"/>
出力
<a href=gateway-URL/http://mymachine.intranet.com/myhome.html>
説明
書き換えられる URL はすでに絶対 URL であるため、ゲートウェイ URL だけがこの URL にプレフィックスとして追加されます。
DJS 属性の例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/focus.html
ページコンテンツ
<Form>
<input TYPE=TEXT SIZE=20 value=focus onClick="Check('/focus.html','focus');return;">
</Form>
ルール
<Attribute name="onClick" type="DJS"/>
<Function type="URL" name="Check" paramPatterns="y,"/>
出力
<Form>
<INPUT TYPE=TEXT SIZE=20 value=focus onClick="Check('gateway-URL/http://abc.sesta.com/focus.html','focus') ;return;">
</Form>
説明
指定されたページコンテンツを書き換えるには、2 つのルールが必要です。最初のルールは onClick JavaScript トークンを特定します。2 番目のルールは、書き換えが必要な check 関数のパラメータを特定します。この場合、paramPatterns に値 y が指定されているため、最初のパラメータだけが書き換えられます。
ゲートウェイ URL と JavaScript トークンが表示されるベース URL が、必要なパラメータの前に指定されます。
HTML コンテンツのフォームルール
ユーザーが参照する HTML ページにはフォームが含まれていることがあります。一部のフォーム要素は、値として URL をとることがあります。
この節は、次の項目から構成されています。
フォームルールの構文
<Form name="form1" field="visit" [valuePatterns="" source="*"]/>
各表記の意味は次のとおりです。
name はフォーム名です (必須)。
field は値を書き換える必要があるフォームのフィールドです (必須)。
valuePatterns については、「ルールでのパターンマッチングの使用」を参照してください。
source は、このフォーム定義が存在するページの URL です (省略可能、デフォルトは任意のページを意味する *)。
フォームルールの例
ページのベース URL が次の URL であると仮定します。
http://test.siroe.com/testcases/html/form.html
ページコンテンツ
ページ URI が form.html で、サーバーの root ディレクトリに格納されていると仮定します。
<form name=form1 method=POST action="http://test.siroe.com/testcases/html/form.html">
<input type=hidden name=abc1 value="0|1234|/test.html">
</form>
form1 の一部である abc1 という隠しフィールドの値に含まれる /text.html を書き換えるとします。この場合、次のルールが必要です。
ルール
<Form source="*/form.html" name="form1" field="abc1" valuePatterns="0|1234|"/>
<Attribute name="action"/>
出力
<FORM name="form1" method="POST" action="gateway-URL/http://test.siroe.com/testcases/html/form.html" >
<input type=hidden name=abc1 value="0|1234|gateway-URL/http://test.siroe.com/test.html">
</FORM>
説明
action タグは定義済みのいくつかの HTML 属性ルールを使用して書き換えられます。
入力タグ属性値のvalue は、出力に示されるように書き換えられます。指定された valuePatterns が検索され、一致した valuePatterns に続くすべてのコンテンツは、先頭にゲートウェイ URL とページのベース URL を追加する方法で書き換えられます。「ルールでのパターンマッチングの使用」を参照してください。
HTML コンテンツのアプレットルール
単一の Web ページに複数のアプレットが含まれていたり、各アプレットに多くのパラメータが指定されていることがあります。リライタは、ルールに指定されている値とアプレットの HTML 定義を一致させ、アプレットのパラメータ定義の一部として含まれる URL の値を変更します。この置換はサーバーで実行され、ユーザーが特定の Web ページを参照しているときには行われません。このルールは、HTML コンテンツのアプレットタグとオブジェクトタグの両方のパラメータを識別し、それを書き換えます。
この節は、次の項目から構成されています。
アプレットルールの構文
<Applet code="ApplicationClassName/ObjectID" param="parametername" [valuePatterns="" source="*"] />
各表記の意味は次のとおりです。
code はアプレットクラスまたはオブジェクトクラスの名前です (必須)。
param は値を書き換える必要のあるパラメータの名前です (必須)。
valuePatterns については、「ルールでのパターンマッチングの使用」を参照してください。
source は、アプレット定義が存在するページの URL です (省略可能、デフォルトは任意のページを意味する *)。
アプレットルールの例
ページのベース URL が次の URL であると仮定します。
http://abc.siroe.com/casestudy/test/HTML/applet/rule1.html
ページコンテンツ
<applet codebase="appletcode" code="RewriteURLinApplet.class" archive="/test.jar">
<param name=Test1 value="/index.html">
</applet>
ルール
<Applet source="*/rule1.html" code="RewriteURLin*.class" param="Test*"/>
出力
<APPLET codebase="gateway-URL/http://abc.siroe.com/casestudy/test/HTML/applet /appletcode" code="RewriteURLinApplet.class" archive="/test.jar">
<param name="Test1" value="gateway-URL/http://abc.siroe.com/index.html">
</APPLET>
説明
default_gateway_ruleset に <Attribute name="codebase"/> が定義されているため、codebase attribute は書き換えられます。
名前が Test で始まるすべてのパラメータが書き換えられます。アプレットコードが表示されるページのベース URL、およびゲートウェイ URL が、param タグの value 属性の値の前に追加されます。
ルールでのパターンマッチングの使用
valuePatterns フィールドを使用してパターンマッチングを実行し、書き換えが必要な文の特定部分を識別することができます。
ルールの一部として valuePatterns を指定すると、一致したパターンに続くすべてのコンテンツが書き換えられます。
次のフォーム例のルールを考えます。
<Form source="*/source.html" name="form1" field="visit" [valuePatterns="0|1234|"]/>
各表記の意味は次のとおりです。
source は、フォームが表示される HTML ページの URL です。
name はフォーム名です。
field は値を書き換える必要があるフォームのフィールドです。
valuePatterns は書き換えが必要な部分文字列を示します。valuePatterns の後に表示されるすべてのコンテンツは書き換えられます (省略可能、デフォルトは値全体の書き換えが必要であることを示す "")。
valuePatterns への特殊文字の指定
¥ (円記号) でエスケープすることにより、特殊文字を指定できます。
例
<Form source="*/source.html" name="form1" field="visit" [valuePatterns="0|1234|¥;original text|changed text"]/>
valuePatterns でのワイルドカードの使用
アスタリスク (*) を使用して、書き換えのパターンマッチングを実行できます。
valuePatterns フィールドに * だけを指定することはできません。* はあらゆる項目との一致を示すため、valuePattern に続くコンテンツがなくなり、リライタが書き換えるコンテンツもなくなります。* は *abc のように、ほかの文字列と組み合わせて使用できます。この場合、*abc に続くすべてのコンテンツが書き換えられます。
注
アスタリスク (*) はルールのどのフィールドでも、ワイルドカードとして使用できます。ただし、ルールのすべてのフィールドに * を使用することはできません。すべてのフィールドに * が含まれている場合、ルールは無視されます。エラーメッセージは表示されません。
* や ** は、セミコロンやカンマなどの区切り文字と一緒に使用できます。区切り文字は、元の文に含まれる複数のフィールドを区切ります。1 文字のワイルドカード (*) は書き換えられないフィールドと一致し、2 文字のワイルドカード (**) は書き換えが必要なフィールドと一致します。
表 3-1 は、* ワイルドカードの使用例を示しています。
JavaScript コンテンツのルール
JavaScript はさまざまな場所に URL を含んでいます。リライタは JavaScript を直接パースできないため、URL 部分を特定できません。JavaScript プロセッサで URL を識別、解釈できるようにするために、特別なルールセットを記述する必要があります。
URL を含む JavaScript 要素は次のように分類されます。
変数
汎用構文
<Variable name="variableName" [type="URL|EXPRESSION|DHTML|DJS|SYSTEM" source="*"]>
JavaScript の変数は、その値の種類に応じてさらに次の 5 つのカテゴリに分類されます。
URL 変数
この変数の値は、URL として扱うことができる単純文字列です。
この節は、次の項目から構成されています。
URL 変数の構文
<Variable name="variableName" type="URL" [source="*"]>
各表記の意味は次のとおりです。
variableName は変数名です。variablename の値が書き換えられます (必須)。
type は URL 変数です (必須、値は URL でなければならない)。
source は、この JavaScript 変数が含まれるページの URI です (省略可能、デフォルトは任意のページを意味する *)。
URL 変数の例
ベース URL が次の URL であると仮定します。
http://abc.siroe.com/tmp/page.html
ページコンテンツ
<script LANGUAGE="Javascript">
<!--
//URL Variables
var imgsrc1="/tmp/tmp.jpg";
var imgsrc2="http://srap.sesta.com/tmp/tmp.jpg";
var imgsrc3=imgsrc2;
//-->
</SCRIPT>
ルール
<Variable name="imgsrc*" type="URL"/>
出力
<script LANGUAGE="Javascript">
<!--
//URL Variables
var imgsrc="gateway-URL/http://abc.siroe.com/tmp/tmp.jpg";
var imgsrc="gateway-URL/http://srap.sesta.com/tmp/tmp.jpg";
var imgsrc2=imgsrc1;
//-->
</SCRIPT>
説明
タイプが URL で、名前が imgsrc から始まるすべての変数が書き換えられます。出力の最初の行では、ゲートウェイ URL と変数が表示されるページのベース URL が先頭に指定されます。2 行目にはすでに絶対パスが指定されているため、ゲートウェイ URL のみがプレフィックスとして追加されます。3 番目の変数 imagsrc2 は、値が文字列ではなく別の JavaScript 値であるため書き換えられません。
EXPRESSION 変数
EXPRESSION 変数の右側には式が指定されます。この式の結果は URL です。リライタは、このような式をサーバーで評価できないため、HTML ページに JavaScript 関数 (psSRAPRewriter_convert_expression) を追加します。この関数はパラメータとして式をとり、クライアントブラウザで要求される URL に対して式を評価します。
文に含まれる URL が単一の URL であるか EXPRESSION URL であるかが明らかでないときは、どちらの場合にも適用できる EXPRESSION ルールを使用してください。
この節は、次の項目から構成されています。
EXPRESSION 変数の構文
<Variable name="variableName" [type="EXPRESSION" source="*"]/>
各表記の意味は次のとおりです。
variableName は、値として式を持つ JavaScript 変数の名前です (必須)。
type は JavaScript 変数のタイプです (省略可能、デフォルト値は EXPRESSION)。
source はページの URI です (省略可能、デフォルトは任意のソースを意味する *)。
EXPRESSION 変数の例
ページのベース URL が次の URL であると仮定します。
http://abc.siroe.com/dir1/dir2/page.html
ページコンテンツ
<script LANGUAGE="Javascript">
<!--
//EXPRESSION 変数
var expvar= getURIPreFix() + "../../images/graphics"+".gif";
document.write("<A HREF="+expvar+">Link to XYZ content</A><P>")
var expvar="../../images/graphics"+".gif";
//-->
</SCRIPT>
ルール
<Variable name="expvar" type="EXPRESSION"/>
または
<Variable name="expvar"/>
出力
var expvar=psSRAPRewriter_convert_expression(getURIPreFix() + "../../images/graphics"+".gif");
document.write("<a href="+expvar+">>Link to XYZ content</A><P>")
var expvar="gateway-URL/http://abc.siroe.com/images/graphics"+".gif";
説明
関数 psSRAPRewriter_convert_expression が、式変数 expvar の最初の行の右側の部分に先行して指定されます。この関数は、実行時に式を処理し、コンテンツを書き換えます。3 行目では、値が簡易 URL に書き換えられます。
DHTML (ダイナミック HTML) 変数
これは HTML コンテンツを含む JavaScript 変数です。
この節は、次の項目から構成されています。
DHTML 変数の構文
<Variable name="variableName" type="DHTML" [source="*"]/>
各表記の意味は次のとおりです。
variableName は DHTML コンテンツを持つ JavaScript 変数の名前です (必須)。
type は変数のタイプです (必須、値は DHTML である必要がある)。
source はページの URL です (省略可能、デフォルトは任意のページを意味する *)。
DHTML 変数の例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/graphics/set1/graphics/jsscript/JSVAR/page.html
ページコンテンツ
<script LANGUAGE="Javascript">
<!--
//DHTML Var
var dhtmlVar="<a href=../../images/test.html>"
var dhtmlVar="<a href=/images/test.html>"
var dhtmlVar="<a href=images/test.html>"
//-->
</SCRIPT>
ルール
<Variable name="dhtmlVar" type="DHTML"/>
<Attribute name="href"/>
または
<Attribute name="href" tag="a"/>
出力
<script LANGUAGE="Javascript">
<!--
//DHTML Var
var dhtmlVar="<a href=gateway-URL/http://abc.sesta.com/graphics/set1/graphics/images/t est.html>"
var dhtmlVar="<a href=gateway-URL/http://abc.sesta.com/images/test.html>"
var dhtmlVar="<a href=gateway-URL/http://abc.sesta.com/graphics/set1/graphics/jscript/ JSVAR/images/test.html>"
//-->
</SCRIPT>
説明
JavaScript パーサーは dhtmlVar の値を HTML コンテンツとして読み取り、HTML パーサー経由でそのコンテンツを送信します。HTML パーサー は HTML ルールを適用するため、href 属性ルールとの一致によって URL が書き換えられます。
DJS (ダイナミック JavaScript) 変数
これは JavaScript コンテンツを含む JavaScript 変数です。
この節は、次の項目から構成されています。
DJS 変数の構文
<Variable name="variableName" type="DJS" [source="*"]/>
各表記の意味は次のとおりです。
variable は JavaScript を値として持つ JavaScript 変数の名前です。
DJS 変数の例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/dir1/dir2/dir3/jscript/dir4/page.html
ページコンテンツ
//DJS Var
var dJSVar="var dJSimgsrc='/tmp/tmp.jpg';"
var dJSVar="var dJSimgsrc='../tmp/tmp.jpg';"
var dJSVar="var dJSimgsrc='http://abc.sesta.com/tmp/tmp.jpg';"
ルール
<Variable name="DJS">dJSVar/>
<Variable name="URL">dJSimgsrc/>
出力
//DJS Var - need 2 rules
var dJSVar="var dJSimgsrc='gateway-URL/http://abc.sesta.com/tmp/tmp.jpg';"
var dJSVar="var dJSimgsrc='gateway-URL/http://abc.sesta.com/dir1/dir2/dir3/jscript/tmp/ tmp.jpg';"
var dJSVar="var dJSimgsrc='gateway-URL/http://abc.sesta.com/tmp/tmp.jpg';"
説明
ここでは、2 つのルールが必要です。最初のルールはダイナミック JavaScript 変数 dJSVar を検索します。この変数の値は、同じくタイプが URL の JavaScript になります。次に 2 番目のルールが適用され、この JavaScript 変数の値が書き換えられます。
SYSTEM 変数
これらは、使用によって宣言されない変数であり、サポートは限定されます。これらの変数は JavaScript 標準の一部として利用可能です。たとえば、window.location.pathname などがあります。
この節は、次の項目から構成されています。
SYSTEM 変数の構文
<Variable name="variableName" type="SYSTEM" [source="*"]/>
各表記の意味は次のとおりです。
variableName は JavaScript のシステム変数です (必須)。値は document.URL、document.domain、location、doument.location、location.pathname、location.href、location.protocol、location.hostname、location.host、およびlocation.port のいずれかのパターンと一致する必要があります。これは、すべて generic_ruleset に含まれます。これらのシステム var ルールを変更しないでください。
type には、システムタイプの値を指定します (必須、値は DJS)。
source はこのページの URI です (省略可能、デフォルトは任意のページを意味する *)。
SYSTEM 変数の例
ページのベース URL が次の URL であると仮定します。
http://abc.siroe.com/dir1/page.html
ページコンテンツ
<script LANGUAGE="Javascript">
<!--
//SYSTEM 変数
alert(window.location.pathname);
//-->
</SCRIPT>
ルール
<Variable name="window.location.pathname" type="SYSTEM"/>
出力
</SCRIPT>
<SCRIPT LANGUAGE="Javascript">
<!--
//SYSTEM 変数
alert(psSRAPRewriter_convert_pathname(window.location.pathname));
//-->
</SCRIPT>
説明
リライタは、ルールと一致するシステム変数を検索し、プレフィックスとして psSRAPRewriter_convert_system 関数を追加します。この関数は、実行時にシステム変数を処理し、処理後の URL を書き換えます。
関数の引数
値の書き換えが必要な関数パラメータは、次の 4 つのカテゴリに分類されます。
汎用構文
<Function name="functionName" paramPatterns="y,y," [type="URL|EXPRESSION|DHTML|DJS" source="*"]/>
各表記の意味は次のとおりです。
name は JavaScript 関数の名前です (必須)。
paramPatterns は、書き換えが必要なパラメータを指定します (必須)。
y によって指定される位置は、書き換えが必要なパラメータを示します。たとえば、構文の最初のパラメータは書き換えるが、2 番目のパラメータは書き換えない、という指定が可能です。
type はこのパラメータが必要とする値の種類を指定します (省略可能、デフォルトは EXPRESSION タイプ)。
source はページのソース URI です (省略可能、デフォルトは任意のページを意味する *)。
URL パラメータ
関数は、このパラメータを文字列としてとり、この文字列は URL として扱うことができます。
この節は、次の項目から構成されています。
URL パラメータの構文
<Function name="functionName" paramPatterns="y,," type="URL" [source="*"]/>
各表記の意味は次のとおりです。
name は、パラメータのタイプが URL である関数の名前です (必須)。
paramPatterns は、書き換えが必要なパラメータを指定します (必須)。
y によって指定される位置は、書き換えが必要なパラメータを示します。たとえば、構文の最初のパラメータは書き換えるが、2 番目のパラメータは書き換えない、という指定が可能です。
type は関数のタイプです (必須、値は URL である必要がある)。
source は、この関数の呼び出しが含まれるページの URL です (省略可能、デフォルトは任意の URL を意味する *)。
URL パラメータの例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/test/rewriter/test1/jscript/test2/page.html
ページコンテンツ
<script language="JavaScript">
<!--
function test(one,two,three) {
alert(one + "##" + two + "##" +three);
}
test("/test.html","../test.html","123");
window.open("/index.html","gen",width=500,height=500);
//-->
</SCRIPT>
ルール
<Function name="URL" name="test" paramPatterns="y,y,"/>
<Function name="URL" name="window.open" paramPatterns="y,,,"/>
出力
<SCRIPT language="JavaScript">
<!--
function test(one,two,three) {
alert(one + "##" + two + "##" +three);
}
test("gateway-URL/http://abc.sesta.com/test.html","gateway-URL/http://abc. sesta.com/test/rewriter/test1/jscript/test.html","123");
window.open("gateway-URL/http://abc.sesta.com/index.html","gen",width=5 00,height=500);
//-->
</SCRIPT>
説明
最初のルールは、関数 test の最初の 2 つのパラメータを書き換える必要があることを示します。したがって、test 関数の最初の 2 つのパラメータが書き換えられます。2 番目のルールは、window.open 関数の最初のパラメータを書き換える必要があることを示します。window.open 関数内の URL の先頭に、ゲートウェイ URL と、関数パラメータが含まれるページのベース URL が追加されます。
EXPRESSION パラメータ
このパラメータは、値として式をとり、この式の評価結果が URL となります。
この節は、次の項目から構成されています。
EXPRESSION パラメータの構文
<Function name="functionName" paramPatterns="y" [type="EXPRESSION" source="*"]/>
各表記の意味は次のとおりです。
name は関数名です (必須)。
paramPatterns は、書き換えが必要なパラメータを指定します (必須)。
y によって指定される位置は、書き換えが必要な関数パラメータを示します。上の構文では、最初のパラメータだけが書き換えられます。
type は、式の値のタイプを指定します (省略可能)。
source は、この関数を呼び出すページの URI です。
EXPRESSION パラメータの例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/dir1/dir2/page.html
ページコンテンツ
<script language="JavaScript">
<!--
function jstest2(){
return ".html";
}
function jstest1(one){
return one;
}
var dir="/images/test"
var test1=jstest1(dir+"/test"+jstest2());
document.write("<a HREF="+test1+">TEST</a>");
alert(test1);
//-->
</SCRIPT>
ルール
<Function type="EXPRESSION" name="jstest1" paramPatterns="y"/>
または
<Function name="jstest1" paramPatterns="y"/>
出力
<script language="JavaScript">
<!--
function jstest2(){
return ".html";
}
function jstest1(one){
return one;
}
var dir="/images/test"
var test1=jstest1(psSRAPRewriter_convert_expression(dir+"/test"+jstest2 ()));
document.write("<a HREF="+test1+">TEST</a>");
alert(test1);
//-->
</SCRIPT>
説明
このルールは、これが EXPRESSION 関数のパラメータであると見なすことによって、jstest1 関数の最初のパラメータを書き換える必要があることを示します。ページコンテンツの例では、最初のパラメータは実行時にだけ評価される式です。リライタはこの式の先頭に psSRAPRewriter_convert_expression 関数を追加します。式が評価され、psSRAPRewriter_convert_expression 関数は実行時に出力を書き換えます。
DHTML パラメータ
これは、値が HTML の関数パラメータです。
HTML ページをダイナミックに生成する document.write() などのネイティブ JavaScript メソッドは、このカテゴリに分類されます。
この節は、次の項目から構成されています。
DHTML パラメータの構文
<Function name="functionName" paramPatterns="y" type="DHTML" [source="*"]/>
各表記の意味は次のとおりです。
name は関数名です。
paramPatterns は、書き換えが必要なパラメータを指定します (必須)。
y によって指定される位置は、書き換えが必要な関数パラメータを示します。上の構文では、最初のパラメータだけが書き換えられます。
DHTML パラメータの例
ページのベース URL が次の URL であると仮定します。
http://xyz.siroe.com/test/rewriter/test1/jscript/JSFUNC/page.html
ページコンテンツ
<script>
<!--
document.write('<a href="/index.html">write</a><BR>')
document.writeln('<a href="index.html">writeln</a><BR>')
document.write("http://abc.sesta.com/index.html<BR>")
document.writeln("http://abc.sesta.com/index.html<BR>")
//-->
</SCRIPT>
ルール
<Function name="DHTML" name="document.write" paramPatterns="y"/>
<Function name="DHTML" name="document.writeln" paramPatterns="y"/>
<Attribute name="href"/>
出力
<SCRIPT>
<!--
document.write('<a href="gateway-URL/http://xyz.siroe.com/index.html">write</a><BR>')
document.writeln('<a href="gateway-URL/http://xyz.siroe.com/test/rewriter/test1/jscript/JSFU NC/index.html">writeln</a><BR>')
document.write("http://abc.sesta.com/index.html<BR>")
document.writeln("http://abc.sesta.com/index.html<BR>")
//-->
</SCRIPT>
説明
最初のルールは、関数 document.write の最初のパラメータを書き換える必要があることを示します。2 番目のルールは、関数 document.writeln の最初のパラメータを書き換える必要があることを指定します。3 番目のルールは、名前に href を含むすべての属性を書き換える必要があることを指定する簡単な HTML ルールです。この例では、DHTML パラメータルールは関数内の書き換えの必要があるパラメータを特定します。この場合、HTML 属性ルールが適用され、特定されたパラメータが実際に書き換えられます。
DJS パラメータ
これは、値が JavaScript の関数パラメータです。
この節は、次の節から構成されています。
DJS パラメータの構文
<Function name="functionName" paramPatterns="y" type="DJS" [source="*"]/>
各表記の意味は次のとおりです。
name は、1 つのパラメータが DJS である関数の名前です (必須)。
paramPatterns は、上の関数のどのパラメータが DJS であるかを指定します (必須)。
y によって指定される位置は、書き換えが必要な関数パラメータを示します。上の構文では、最初のパラメータだけが書き換えられます。
type は DJS です (必須)。
source はページの URI です (省略可能、デフォルトは任意の URI を意味する *)。
DJS パラメータの例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/page.html
ページコンテンツ
<script>
menu.addItem(new NavBarMenuItem("All Available Information","JavaScript:top.location='http://abc.sesta.com'"));
</script>
ルール
<Function name="DJS" name="NavBarMenuItem" paramPatterns=",y"/>
<Variable name="URL">top.location</Variable>
出力
<script>
menu.addItem(new NavBarMenuItem("All Available Information","JavaScript:top.location='gateway-URL/http://abc.sesta.com '"));
</script>
説明
最初のルールは、JavaScript を含む関数 NavBarMenuItem の 2 番目のパラメータを書き換える必要があることを指定します。JavaScript 内で、変数 top.location も書き換える必要があります。この変数は 2 番目のルールを使用して書き換えられます。
XML コンテンツのルール
Web ページには、URL を含む XML コンテンツが含まれていることがあります。書き換えが必要な XML コンテンツは、2 つのカテゴリに分類されます。
タグテキスト
このルールは、タグ要素の PCDATA または CDATA を書き換えるためのものです。
この節は、次の項目から構成されています。
タグテキストの構文
<TagText tag="tagName" [attributePatterns="attribute_patterns_for_ this_tag" source="*"]/>
各表記の意味は次のとおりです。
tag はタグ名です。
attributePatterns はこのタグの属性と属性値パターンです (省略可能、省略した場合はこのタグは属性を一切持たない)。
source はこの XML ファイルの URI です (省略可能、デフォルトは任意の XML ページを意味する *)。
タグテキストの例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/test/rewriter/test1/xml/page.html
ページコンテンツ
<xml>
<Attribute name="src">test.html</attribute>
<attribute>abc.html</attribute>
</xml>
ルール
<TagText tag="attribute" attributePatterns="name=src"/>
出力
<xml>
<Attribute name="src">gateway-URL/http://abc.sesta.com/test/rewriter/test1/xml/tes t.html</attribute>
<attribute>abc.html</attribute>
</xml>
説明
ページコンテンツの最初の行には属性の例が含まれます。ページコンテンツの 2 行目には、名前が name で値が src の属性が含まれず、書き換えは行われません。これを書き換えるには、<TagText tag="attribute"/> も必要です。
属性
XML 属性のルールは、HTML の属性ルールに似ています。「HTML コンテンツの属性ルール」参照してください。違いは、XML の属性ルールでは大文字と小文字が区別され、HTML の属性ルールでは区別されないことです。これは、XML では大文字と小文字が区別され、HTML では区別されないためです。
リライタは、属性名に基づいて属性値を変換します。
この節は、次の項目から構成されています。
属性の構文
<Attribute name="attributeName" [tag="*" type="URL" valuePatterns="*" source="*"]/>
各表記の意味は次のとおりです。
attributeName は属性名です (必須)。
tag は、この属性が含まれるタグの名前です (省略可能、デフォルトは任意のタグを意味する *)。
valuePatterns については、「ルールでのパターンマッチングの使用」を参照してください。
source は XML ページの URI です (省略可能、デフォルトは任意の XML ページを意味する *)。
属性の例
ページのベース URL が次の URL であると仮定します。
http://abc.sesta.com/test/rewriter/test1/xml/page.html
ページコンテンツ
<xml>
<baseroot href="/root.html"/>
<img href="image.html"/>
<string href="1234|substring.html"/>
<check href="1234|string.html"/>
</xml>
ルール
<Attribute name="href"tag="check" valuePatterns="1234|"/>
出力
<xml>
<baseroot href="/root.html"/>
<img href="image.html"/>
<string href="1234|substring.html"/>
<check href="1234|gateway-URL/http://abc.sesta.com/test/rewriter/test1/xml/s tring.html"/>
</xml>
説明
上記の例では、4 行目だけがルールに指定されたすべての条件と一致するため、書き換えられます。「ルールでのパターンマッチングの使用」を参照してください。
カスケードスタイルシートのルール
HTML ページのカスケードスタイルシート (CSS2 も含まれる) も変換されます。この変換のために定義されるルールはありません。これは、URL が CSS の url() 関数とインポート構文にだけ表示されるためです。
WML のルール
WML は HTML に似ているため、WML コンテンツには HTML ルールが適用されます。WML コンテンツの汎用ルールセットを使用してください。「HTML コンテンツのルール」を参照してください。
再帰機能の使用
リライタは、再帰機能を使用して、一致する文字列パターンの最後まで同じパターンを検索します。
たとえば、リライタが次の文字列をパースする場合を考えます。
<a href="src=abc.jpg,src=bcd.jpg,src=xyz.jpg>
次のルールがあるとします。
<Attribute name="href" valuePatterns="*src=**"/>
このルールは、最初に見つかったパターンだけを次のように書き換えます。
<a href="src=http://jane.sun.com/abc.jpg>
一方、次のように再帰オプションを使用した場合を考えます。
<Attribute name="href" valuePatterns="REC:*src=**"/>;
リライタは再帰機能を使用して、一致する文字列パターンの最後まで同じパターンを検索します。この出力は次のようになります。
<a href="src=http://jane.sun.com/abc.jpg,src=http://jane.sun.com/bcd.jpg,src=http://jane.sun.com/xyz.jpg>
ゲートウェイサービスのリライタの設定「リライタ」タブでゲートウェイサービスを使用することで、次の基本タスクと高度なタスクを実行できます。
基本タスク
すべての URI の書き換えの有効化
ゲートウェイサービスで「すべての URI の書き換えを有効」オプションを有効にすると、「ドメインとサブドメインのプロキシ」リストのエントリをチェックせずに、リライタはすべての URL を書き換えます。「ドメインとサブドメインのプロキシ」リストのエントリは無視されます。
ゲートウェイによるすべての URL の書き換えを有効にするには
- Sun Java System Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 属性を設定するゲートウェイプロファイルを選択します。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックします。
- 「すべての URI の書き換えを有効」チェックボックスにチェックマークを付け、ゲートウェイによるすべての URL の書き換えを有効にします。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
URI とルールセットのマッピングリストの作成
ルールセットは、Access Manager 管理コンソールの「Portal Server 設定」の下のリライタサービスに作成されます。詳細については、『Portal Server 管理ガイド』を参照してください。
ルールセットを作成したら、「URI をルールセットにマップ」フィールドを使用してドメインとルールセットを関連付けます。デフォルトでは、「URI をルールセットにマップ」リストに次の 2 つのエントリが追加されます。
これは、ドメインが sun.com のポータルディレクトリのすべてのページに default_gateway_ruleset を適用することを指定しています。他のすべてのページには、汎用ルールセットが適用されます。default_gateway_ruleset と generic_ruleset は、すでにパッケージ化されているルールセットです。
構文内でのワイルドカードの使用
ルールセット内でアスタリスクを使用して、完全修飾 URI または部分 URI をマッピングできます。
たとえば、次のように指定することで、index.html ページに java_index_page_ruleset を適用できます。
または、次のように指定することで、java ディレクトリのすべてのページを java_directory_ruleset に適用できます。
www.sun.com/java/* /java_directory_ruleset
URI をルールセットにマッピングするには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 属性を設定するゲートウェイプロファイルを選択します。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックします。
- 「URI をルールセットにマップ」フィールドまでスクロールします。
- 「URI をルールセットにマップ」フィールドに適切なドメイン名またはホスト名とルールセットを入力し、「追加」をクリックします。
「URI をルールセットにマップ」リストにエントリが追加されます。
ドメインまたはホスト名とルールセットは次の形式で指定します。
ドメイン名|ルールセット名
例
eng.sesta.com|default
パースする MMI タイプリストの作成
リライタには、コンテンツタイプ (HTML、JAVASCRIPT、CSS、および XML) に基づいて Web ページをパースするための 4 種類のパーサーがあります。デフォルトでは、これらのパーサーには一般的な MIME タイプが関連付けられています。新しい MIME タイプとこれらのパーサーの関連付けは、ゲートウェイサービスの「パーサーを MIME タイプにマップ」フィールドで行います。これにより、リライタ機能を他の MIME タイプに拡張できます。
複数のエントリは、セミコロン (;) またはカンマ (,) で区切ります。
例
HTML=text/html;text/htm;text/x-component;text/wml; text/vnl/wap.wml
これは、これらの MIME が HTML リライタに送られ、URL の書き換えに HTML ルールを適用することを指定しています。
ヒント
MIME マッピングリストから不要なパーサーを削除すると、処理速度が向上します。たとえば、特定のイントラネットのコンテンツに JavaScript が含まれないことが確実な場合は、MIME マッピングリストから JavaScript エントリを削除できます。
MIME のマッピングを指定するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックします。
- 「パーサーを MIME タイプにマップ」フィールドまでスクロールし、編集ボックスに必要な MIME タイプを追加します。複数のエントリを区切るときは、セミコロンまたはカンマを使用します。
エントリは HTML=text/html;text/htm の形式で指定します。
- 「追加」をクリックし、必要なエントリをリストに追加します。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換えない URI のリストの作成
このルールは、ページに http://host.domain.com のような URL が表示された場合にそれが書き換えられないことを意味します。ただし、ページに他の URL が含まれている場合、そのページは書き換えられます。URl が http://host.domain.com のページを必要としない場合は、http://host.domain.com"|null_ruleset のように、ルールセットのマッピングを追加します。
書き換えない URI を指定するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「書き換えない URI」フィールドまでスクロールし、編集ボックスに URI を追加します。
注: このリストに #* を追加することで、href ルールがルールセットの一部である場合でも URI を書き換えることができます。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
デフォルトドメインの指定
デフォルトのドメインとサブドメインは、URL にホスト名だけが含まれ、ドメインとサブドメインが指定されていない場合に便利です。この場合、ゲートウェイはホスト名がデフォルトのドメインとサブドメイン内にあると仮定し、そのように処理を進めます。
たとえば、URL のホスト名が host1、デフォルトのドメインとサブドメインが red.sesta.com のように指定されている場合、ホスト名は host1.red.sesta.com として解決されます。
デフォルトドメインを指定するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブをクリックします。
- 「SRA 設定」の「ゲートウェイ」の隣の右矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 属性を設定するゲートウェイプロファイルを選択します。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックします。
- 「デフォルトのドメイン」フィールドまでスクロールし、必要なデフォルト値を subdomain.domain の形式で入力します。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
高度なタスク
MIME 推測の有効化
リライタは、パーサーの選択にページの MIME タイプを使用します。WebLogic や Oracle などの一部の Web サーバーは MIME タイプを送信しません。これに対応するには、「パーサーと URI のマッピング」リストボックスにデータを追加して、MIME 推測機能を有効にします。
MIME 推測を有効にするには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「MIME 推測を有効」チェックボックスにチェックマークを付け、MIME 推測を有効にします。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
パースする URI マッピングリストの作成
MIME 推測機能が有効で、サーバーが MIME タイプを送信しない場合は、このリストを使用してパースする URI をマッピングします。
複数の URI はセミコロンで区切られます。
たとえば、HTML=*.html; *.htm;*Servlet のように指定します。
この例の設定では、HTML リライタは拡張子が html、htm、Servlet のすべてのページのコンテンツを書き換えます。
パーサーを URI にマッピングするには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「パーサーを MIME タイプにマップ」フィールドまでスクロールし、編集ボックスにデータを追加します。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
マスキングの有効化
マスキングを有効にすることで、リライタはページのイントラネット URL が判読されないように URI を書き換えます。
マスキングを有効にするには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「マスキングを有効」チェックボックスにチェックマークを付け、マスキングを有効にします。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
マスキングのためのシード文字列の指定
URI のマスキングには、シード文字列が使用されます。シード文字列は、マスキングアルゴリズムによって生成されるランダムな文字列です。
マスキングのためのシード文字列を指定するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「マスキングのシード文字列」フィールドまでスクロールし、編集ボックスに文字列を追加します。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
マスクしない URI のリストの作成
アプレットなどの一部のアプリケーションはインターネット URI を必要とし、マスクすることができません。これらのアプリケーションを指定するには、リストボックスに URI を追加します。
たとえば、次のように追加します。
*/Applet/Param*
リストボックスに追加した URL は、コンテンツの URI http://abc.com/Applet/Param1.html がルールセット内のルールと一致する場合にマスクされません。
マスクしない URI のリストを作成するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「マスクしない URI」フィールドまでスクロールし、編集ボックスに URI を追加します。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
ゲートウェイプロトコルと元の URI プロトコルの同一化
ゲートウェイが HTTP と HTTPS の両方のモードで稼動する場合、HTML コンテンツ内で参照されるリソースへのアクセスに同じプロトコルを使用するようにリライタを設定できます。
たとえば、元の URL が http://intranet.com/Public.html であれば、HTTP ゲートウェイが追加されます。元の URL が https://intranet.com/Public.html であれば、HTTPS ゲートウェイが追加されます。
ゲートウェイプロトコルと元の URI プロトコルを同一化するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 編集する属性が含まれるゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「リライタ」タブをクリックし、「基本」サブセクションを表示します。
- 「ゲートウェイプロトコルを元の URI プロトコルと同じにする」チェックボックスにチェックマークを付けます。
- 「保存」をクリックし、変更内容を記録します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
デバッグログを使用したトラブルシューティングリライタに関する問題の原因を特定するには、デバッグログを有効にする必要があります。
デバッグメッセージは、次のように分類されます。
リライタのデバッグレベルの設定
リライタのデバッグレベルを設定するには
- ゲートウェイマシンに root としてログインし、次のファイルを編集します。
gateway-install-root/SUNWam/config/AMConfig-instance-name.properties
- デバッグレベルを設定します。
com.iplanet.services.debug.level=
次のデバッグレベルがあります。
error : 重要なエラーだけがログとしてデバッグファイルに記録されます。このようなエラーが発生すると、通常、リライタは機能を停止します。
warning : 警告メッセージがログに記録されます。
message : すべてのデバッグメッセージがログに記録されます。
off : デバッグメッセージはログに記録されません。
- AMConfig-instance-name.properties ファイルの次のプロパティーに、デバッグファイルのディレクトリを指定します。
com.iplanet.services.debug.directory=/var/opt/SUNWam/debug
この /var/opt/SUNWam/debug は、デフォルトのデバッグディレクトリです。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
デバッグファイル名
デバッグレベルを「message」に設定すると、複数のファイルが生成されます。表 3-2 はリライタのデバッグファイルとその内容を示しています。
これらのファイルのほかに、リライタはこれらのファイルに記録されないデバッグメッセージを記録するファイルを生成します。このファイルの名前は 2 つの部分から構成されます。最初の部分は pwRewriter または psSRARewriter で、2 番目の部分は portal または gateway-profile-name を使用した拡張子です。
デバッグファイルは、ポータルまたはゲートウェイに表示されます。これらのファイルは、AMConfig-instance-name.properties ファイルに指定されているディレクトリに格納されます。
リライタコンポーネントは、デバッグ用に次のファイルを生成します。
prefix_RuleSetInfo.extension
prefix_OrginalPages.extension
prefix_RewrittenPages.extension
prefix_UnaffectedPages.extension
prefix_URIInfo.extension
各表記の意味は次のとおりです。
prefix は、URL スクレイパーを使用した場合は psRewriter、ゲートウェイを使用した場合は psSRAPRewriter です。
extension は、URL スクレイパーを使用した場合は portal、ゲートウェイを使用した場合は gateway-profile-name です。
たとえば、ページの変換にゲートウェイ上のリライタとデフォルトのゲートウェイプロファイルを使用した場合は、次のデバッグファイルが生成されます。
psSRAPRewriter_RuleSetInfo.default
psSRAPRewriter_OriginalPages.default
psSRAPRewriter_RewrittenPages.default
psSRAPRewriter_UnaffectedPages.default
psSRAPRewriter_URIInfo.default
psSRAPRewriter.default
サンプルの操作ここで説明する内容は次のとおりです。
これらのサンプルページは、portal-server-URL/rewriter ディレクトリ内にあります。ルールを適用する前にページの内容を参照し、その後、書き換えられてゲートウェイを通じて出力されたファイルを参照することで、ルールがどのように機能しているかを理解することができます。一部のサンプルでは、ルールはすでに default_gateway_ruleset の一部として含まれています。一部のサンプルでは、ルールを default_gateway_ruleset に含めなければならない場合があります。これについては、該当箇所で説明します。
次のサンプルが用意されています。
HTML コンテンツのサンプル
HTML 属性のサンプル
HTML 属性のサンプルを使用するには
このサンプルに指定されているルールはすでに default_gateway_ruleset に定義されているので、追加の必要はありません。
書き換え前の HTML
<html>
Rewriting starts
<head>
<title>TEST PAGE () </title>
</head>
ID-htmlattr.1
<br><br>
1.a href <a href="http://abc.sesta.com/images/logo.gif">http://..</a>
<br><br>
2. href <a href="https://host1.siroe.com">https://..</a>
<br><br>
3. href <a href="../images/logo.gif">../images/</a>
<br><br>
4. href <a href="images/logo.gif">images/..</a> <br><br>
5. href <a href="../../images/logo.gif">../../images/</a> <br><br>
Rewriting ends
</html>
ルール
<Attribute name="href"/>
書き換え後の HTML
<html>
Rewriting starts
<head>
<title>TEST PAGE () </title>
</head>
ID-htmlattr.1
<br><br>
1. a href <a href="gateway-URL/http://abc.sesta.com/images/logo.gif">http://..</ a> <br>
default_gateway_ruleset に <Attrib name="href"/> ルールがすでに定義されているので、この URL は書き換えられます。URL はすでに絶対 URL であるため、ゲートウェイ URL だけがプレフィックスとして追加されます。ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接接続が想定されるため、ゲートウェイ URL がプレフィックスとして追加されません。
2. href <a href="gateway-URL/https://host1.siroe.com">https://..</a>
// この場合も、ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに host1.siroe.com が定義されていることを確認してください。これが定義されていないと、直接接続が想定されるため、ゲートウェイ URL がプレフィックスとして追加されません。
<br><br>
3. href <a href="gateway-URL/portal-server-URL/rewriter/HTML/images/logo.gif"> ../images/</a>
// 相対パスが指定されているため、必要なサブディレクトリの後にゲートウェイ URL と portal-server-URL がプレフィックスとして追加されます。用意されたサンプル構造で、HTML ディレクトリの下の images という名前のディレクトリが指定されないため、このリンクは機能しません。
<br><br>
4 href <a href="gateway-URL/portal-server-URL/rewriter/HTML/attrib/images/log o.gif">images/..</a> <br><br>
// 相対パスが指定されているため、必要なサブディレクトリの後にゲートウェイ URL と Portal Server URL がプレフィックスとして追加されます。
5. href <a href="gateway-URL/portal-server-URL/rewriter/images/logo.gif">../.. /images/</a> <br><br>
// 相対パスが指定されているため、必要なサブディレクトリの後にゲートウェイ URL と Portal Server URL がプレフィックスとして追加されます。用意されたサンプル構造で、Rewriter ディレクトリの下の images という名前のディレクトリが指定されないため、このリンクは機能しません。
Rewriting ends
</html>
HTML ダイナミック JavaScript トークンのサンプル
HTML JavaScript トークンのサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/HTML/jstokens/JStokens.html
- このサンプルで指定されているルールを、default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML
<html>
<head>
Rewriting starts
<script language="javascript">
function Check(test,ind){
if (ind == 'blur')
{alert("testing onBlur")}
if (ind == 'focus')
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check('/indexblur.html','blur');return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check('/indexblur.html','blur');return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check('/focus.html','focus');return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check('/focus.html','focus');return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check('/focus.html','blur');return;">
<br><br>
</form>
</body>
Rewriting ends
</html>
ルール
<Attribute name="onClick" type="DJS"/>
<Function type="URL" name="Check" paramPatterns="y"/>
注
<Function name="URL" name="Check" paramPatterns="y"/> は JavaScript 関数ルールです。JavaScript 関数のサンプルで詳しく説明します。
書き換え後の HTML
<html>
<head>
Rewriting starts
<script language="javascript">
function Check(test,ind){
if (ind == 'blur')
{alert("testing onBlur")}
if (ind == 'focus')
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check('gateway URL/portal-server-URL/indexblur.html','blur');return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check('gateway URL/portal-server-URL/indexblur.html','blur');return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check('gateway URL/portal-server-URL/focus.html','focus');return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check('gateway URL/portal-server-URL/focus.html','focus');return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check('gateway URL/portal-server-URL/focus.html','blur');return;">
// このサンプルではすべての文が書き換えられます。それぞれ、ゲートウェイと Portal Server の URL が先頭に追加されます。これは、default_gateway_ruleset ファイルに onAbort、onBlur、onFocus、onChange、および onClick のルールが定義されているためです。リライタは JavaScript トークンを検出し、後の処理のために JavaScript 関数ルールに渡します。サンプルの 2 番目のルールは、書き換えるパラメータをリライタに伝えます。
</body>
<br>
Rewriting ends
</html>
HTML フォームのサンプル
フォームのサンプルを使用するには
- 次の場所にあるサンプルフォームにアクセスします。
portal-server-URL/rewriter/HTML/forms/formrule.html
- ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
- このサンプルで指定されているルールを、default_gateway_ruleset の「HTML 属性を書き換えるためのルール (Rules for Rewriting HTML Attributes)」セクションに追加します。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- 端末ウィンドウからゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
</head>
<body>
RW_START
<p>
<form name="form1" method="Post" action="http://abc.sesta.com/casestudy/html/form.html">
<input type="hidden" name="name1" value="0|1234|/test.html">
<input type="hidden" name="name3" value="../../html/test.html">
<form name="form2" method="Post" action="http://abc.sesta.com/testcases/html/form.html"><br>
<input type="hidden" name="name1" value="0|1234|../../html/test.html"></form>
RW_END </p>
</body>
</html>
ルール
<Form source="*" name="form1" field="name1" valuePatterns="0|1234|"/>
書き換え後の HTML ページ
<HTML>
<HEAD>
RW_START
</HEAD>
<BODY>
<P>
<FORM name=form1 method=POST action="gateway-URL/http://abc.sesta.com/casestudy/html/form.html">
default_gateway_ruleset 内の HTML ルールの一部として <Attribute name="action"/> が定義されているため、この URL は書き換えられます。この URL はすでに絶対 URL であるため、ゲートウェイ URL だけをプレフィックスとして追加する必要があります。ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接接続が想定されるため、ゲートウェイ URL がプレフィックスとして追加されません。
<input type=hidden name=name1 value="0|1234|gateway URL/portal-server-URL/test.html">
// ここではフォーム名は form1、フィールド名は name1 です。これはルールに指定されたフォーム名とフィールド名に一致します。ルールはこの文の value に一致する valuePatterns を 0|1234| と宣言します。したがって、valuePattern の後の URL が書き換えられます。Portal Server の URL とゲートウェイの URL が先頭に追加されます。valuePatterns の詳細については、「ルールでのパターンマッチングの使用」を参照してください。
<input type=hidden name=name3 value="../../html/test.html">
name はルールに指定される field 名と一致しないため、この URL は書き換えられません。
</FORM>
<FORM name=form2 method=POST action="gateway-URL/http://abc.sesta.com/casestudy/html/form.html"> <BR>
<Attribute name="action"/> はデフォルトルールセットの HTML ルールの一部として定義されているため、この URL は書き換えられます。この URL はすでに絶対 URL であるため、ゲートウェイ URL だけをプレフィックスとして追加する必要があります。
<input type=hidden name=name1 value="0|1234|../../html/test.html">
// フォーム名がルールに指定される名前と一致しないため、この URL は書き換えられません。
</FORM>
</BODY>
RW_END
</HTML>
HTML アプレットのサンプル
アプレットのサンプルを使用するには
- アプレットの class ファイルを入手します。RewriteURLinApplet.class ファイルは、次の場所にあります。
portal-server-URL/rewriter/HTML/applet/appletcode
アプレットコードを参照するページのベース URL は次のとおりです。
portal-server-URL/rewriter/HTML/applet/rule1.html
- このサンプルで指定されているルールを、default_gateway_ruleset の「HTML 属性を書き換えるためのルール (Rules for Rewriting HTML Attributes)」セクションに追加します。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML
<html>
Rewriting starts
<br>
<applet codebase=appletcode code=RewriteURLinApplet.class archive=/test>
<param name=Test1 value="/index.html">
<param name=Test2 value="../index.html">
<param name=Test3 value="../../index.html">
</applet>
Rewriting ends
</html>
ルール
<Applet source="*/rule1.html" code="RewriteURLinApplet.class" param="Test*" />
書き換え後の HTML
<HTML>
Rewriting starts
<BR>
<APPLET codebase=gateway-URL/portal-server-URL/rewriter/HTML/applet/appletc ode=RewriteURLinApplet.class archive=/test>
<Attrib name="codebase"/> ルールがすでに default_gateway_ruleset ファイルの一部として存在するため、この URL は書き換えられます。ゲートウェイと Portal Server の URL が appletcode ディレクトリのパスの前にプレフィックスとして追加されます。
<param name=Test1 value="gateway-URL/portal-server-URL/index.html">
// ページのベース URL が rule1.html で、パラメータ名がルールに指定されたパラメータ Test* と一致するため、この URL は書き換えられます。index.html は root レベルに指定されているため、ゲートウェイと Portal Server の URL がプレフィックスとして直接追加されます。
<param name=Test2 value="gateway-URL/portal-server-URL/rewriter/HTML/index.html">
// ページのベース URL が rule1.html で、パラメータ名がルールに指定されたパラメータ Test* と一致するため、この URL は書き換えられます。必要に応じて、パスがプレフィックスとして追加されます。
<param name=Test3 value="gateway-URL/portal-server-URL/rewriter/index.html">
// ページのベース URL が rule1.html で、パラメータ名がルールに指定されたパラメータ Test* と一致するため、この URL は書き換えられます。必要に応じて、パスがプレフィックスとして追加されます。
</APPLET>
Rewriting ends
</HTML>
JavaScript コンテンツのサンプル
JavaScript URL 変数のサンプル
JavaScript の URL 変数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/variables/url/js_urls.html
- ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
- このサンプルで指定されているルールを、default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
Rewriting starts
<head>
<title>JavaScript Variable test page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//URL Variables
var imgsrc="/tmp/tmp.jpg";
var imgsrc="./tmp/tmp.jpg";
var imgsrc="../tmp/tmp.jpg";
var imgsrc="../../tmp/tmp.jpg";
var imgsrc="http://abc.sesta.com/tmp/tmp.jpg";
var imgsrc="../../../tmp/tmp.jpg";
var imgsrc="tmp/tmp.jpg";
//-->
</SCRIPT>
<br>
Testing JavaScript variables!
<br>
<img src="images/logo.gif">
<br>
Image
</body>
<br>
Rewriting ends
</html>
ルール
<Variable name="imgsrc" type="URL"/>
書き換え後の HTML ページ
<html>
Rewriting starts
<head>
<title>JavaScript Variable test page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//URL Variables
var imgsrc="gateway-URL/portal-server-URL/tmp/tmp.jpg";
var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/variables /url/tmp/tmp.jpg";
var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/variables /tmp/tmp.jpg";
var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/tmp/tmp.j pg";
var imgsrc="gateway-URL/http://abc.sesta.com/tmp/tmp.jpg";
var imgsrc="gateway-URL/portal-server-URL/rewriter/tmp/tmp.jpg";
var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/variables /url/tmp/tmp.jpg";
// 上記のすべての URL は、タイプが URL で、ルールで指定された imgsrc という名前を持つ JavaScript 変数です。したがってこれらの URL の先頭に、ゲートウェイと Portal Server の URL がプレフィックスとして追加されます。必要に応じて、Portal Server URL の後にパスが追加されます。
//-->
</SCRIPT>
<br>
Testing JavaScript variables!
<br>
<img src="gateway URL/portal-server-URL/rewriter/JavaScript/variables/url/images/logo .gif">
default_gateway_ruleset に <Attribute name="src"/> ルールが定義されているので、この行は書き換えられます。
<br>
Image
</body>
<br>
Rewriting ends
</html>
JavaScript EXPRESSION 変数のサンプル
JavaScript の EXPRESSION 変数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/variables/expr/expr.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<head>
<title>JavaScript EXPRESSION Variables Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//EXPRESSION 変数
var expvar1="images";
var expvar2="/logo.gif";
var expvar = expvar1 + expvar2;
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
var expvar="/images/logo"+".gif";
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
//-->
</SCRIPT>
Testing JavaScript EXPRESSION variables
</body>
</html>
ルール
<Variable type="EXPRESSION" name="expvar"/>
書き換え後の HTML ページ
<html>
<head>
<title>JavaScript EXPRESSION Variables Test Page</title>
</head>
<body>
<SCRIPT>
// リライタは、ラッパー関数 psSRAPRewriter_convert_expression をここに追加 します。
</SCRIPT>
<script LANGUAGE="Javascript">
<!--
//EXPRESSION 変数
var expvar1="images";
var expvar2="/logo.gif";
var expvar =psSRAPRewriter_convert_expression( expvar1 + expvar2);
// リライタはこの文の右側を JavaScript EXPRESSION 変数として認識します。リライタはサーバー側でこの式の値を解決することができません。したがって psSRAPRewriter_convert_expression 関数が式の前に追加されます。式はクライアント側で評価され、必要に応じて書き換えられます。
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 前の文の書き換え後の値 expvar は、この式の値に到達するために使用されます。結果は有効な URL (サンプルのこの位置にグラフィックが配置される) であるため、リンクが機能します。
var expvar="gateway URL/portal-server-URL/images/logo"+".gif";
// リライタは expvar の右側を文字列式として認識します。これはサーバー側で解決できるため、直接書き換えられます。
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 前の文の書き換え後の値 expvar は、この式の値に到達するために使用されます。結果が有効な URL ではない (最終的な位置にグラフィックが配置されない) ため、リンクは機能しません。
//-->
</SCRIPT>
Testing JavaScript EXPRESSION variables
</body>
</html>
JavaScript DHTML 変数のサンプル
JavaScript の DHTML 変数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/variables/dhtml/dhtml.html
- ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<head>
<title>JavaScript DHTML Variable Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//DHTML Var
var dhtmlVar="<a href=../../images/test.html>"
var dhtmlVar="<a href=/../images/test.html>"
var dhtmlVar="<a href=/images/test.html>"
var dhtmlVar="<a href=images/test.html>"
var dhtmlVar="<a href=http://abc.sesta.com/images/test.html>"
var dhtmlVar="<img src=http://abc.sesta.com/images/test.html>"
//-->
</SCRIPT>
<br><br>
Testing DHTML Variables
<br><br>
<img src="images/logo.gif">IMAGE
</body>
</html>
ルール
<Variable name="DHTML">dhtmlVar</Variable>
書き換え後の HTML ページ
<html>
<head>
<title>JavaScript DHTML Variable Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//DHTML Var
var dhtmlVar="<a href=gateway-URL/portal-server-URL/rewriter/JavaScript/images/test. html>"
// JavaScript DHTML ルールは dhtmlVar の右側をダイナミック HTML コンテンツとして識別します。このため、default_gateway_ruleset ファイル内の HTML ルールが適用されます。ダイナミック HTML には href 属性が含まれています。default_gateway_ruleset には、<Attribute name="href"/> ルールが定義されています。したがって、href 属性の値が書き換えられます。ただし、URL は絶対 URL ではありません。このため、相対 URL はページのベース URL、および必要なサブディレクトリに置き換えられます。次に、ゲートウェイ URL が URL のプレフィックスとして追加され、最終的な書き換え出力となります。
var dhtmlVar="<a href=gateway-URL/portal-server-URL/../images/test.html>"
// ページのベース URL が追加され、またゲートウェイ URL がプレフィックスとして追加されているため、最終的な URL は機能しません。これは最初の URL /../images/test.html が正確ではないためです。
var dhtmlVar="<a href=gateway-URL/portal-server-URL/images/test.html>"
// ここでも、JavaScript DHTML ルールは右側をダイナミック HTML コンテンツとして識別し、それを HTML ルールに渡します。default_gateway_ruleset の HTML ルール <Attribute name="href"/> が適用され、文は次のように書き換えられます。ゲートウェイの URL と Portal Server の URL が先頭に追加されます。
var dhtmlVar="<a href=gateway URL/portal-server-URL/rewriter/JavaScript/variables/dhtml/images/te st.html>"
var dhtmlVar="<a href=gateway URL/http://abc.sesta.com/images/test.html>"
var dhtmlVar="<img src=gateway-URL/http://abc.sesta.com/images/test.html>"
// JavaScript DHTML ルールは右側のダイナミック HTML コンテンツを識別し、文を HTML ルールに渡します。default_gateway_ruleset 内の <Attribute name="src"/> ルールが適用されます。URL はすでに絶対 URL であるため、ゲートウェイ URL だけをプレフィックスとして追加する必要があります。ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義され、この URL が書き換えられることを確認してください。
//-->
</SCRIPT>
<br><br>
Testing DHTML Variables
<br><br>
<img src="gateway-URL/portal-server-URL/rewriter/JavaScript/variables/dh tml/images/logo.gif">
default_gateway_ruleset に <Attribute name="src"/> ルールが定義されているので、この行は書き換えられます。
<br><br>
Image
</body>
</html>
JavaScript DJS 変数のサンプル
JavaScript の DJS 変数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/variables/djs/djs.html
- ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
- このサンプルで指定される 2 つのルールを、default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<head>
<title>Dynamic JavaScript Variable Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
var dJSVar="var dJSimgsrc='/tmp/tmp/jpg';"
var dJSVar="var dJSimgsrc='../../../tmp/tmp/jpg';"
var dJSVar="var dJSimgsrc='http://abc.sesta.com/tmp/tmp/jpg';"
//-->
</SCRIPT>
<br>
Testing Dynamic JavaScript Variables
<br>
<img src="images/logo.gif">
<br>
Image
</body>
</html>
ルール
<Variable name="dJSVar" type="DJS"/>
<Variable name="dJSimgsrctype=URL"/>
書き換え後の HTML ページ
<html>
<head>
<title>Dynamic JavaScript Variable Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
var dJSVar="var dJSimgsrc='gateway-URL/portal-server-URL/tmp/tmp/jpg';"
var dJSVar="var dJSimgsrc='gateway-URL/portal-server-URL/rewriter/tmp/tmp/jpg';"
var dJSVar="var dJSimgsrc='gateway-URL/http://abc.sesta.com/tmp/tmp/jpg';"
// 上のすべての文は、ゲートウェイ URL と Portal Server URL で書き換えられます。必要に応じて適切なパスがプレフィックスとして追加されます。最初のルールは、dJSVar の右側をダイナミック JavaScript 変数として識別します。これは 2 番目のルールに渡され、2 番目のルールは dJSimgsrc の右側をタイプ URL の JavaScript 変数として識別します。これにより、文は次のように書き換えられます。
//-->
</SCRIPT>
<br>
Testing Dynamic JavaScript Variables
<br>
<img src="gateway-URL/portal-server-URL/rewriter/JavaScript/variables/dj s/images/logo.gif">
default_gateway_ruleset に <Attribute name="src"/> ルールが定義されているので、この行は書き換えられます。
<br>
Image
</body>
</html>
JavaScript SYSTEM 変数のサンプル
JavaScript の SYSTEM 変数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/variables/system/system.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<head>
<title>JavaScript SYSTEM Variables Test Page</title>
</head>
<body>
<script LANGUAGE="Javascript">
<!--
//SYSTEM 変数
alert(window.location.pathname);
//document.write("<A HREF="+window.location.pathname+">SYSTEM</A><P>")
//-->
</SCRIPT>
Testing JavaScript SYSTEM Variables
<br>
This page displays the path where the current page is located when loaded.
</body>
</html>
ルール
<Variable name="window.location.pathname" type="SYSTEM"/>
書き換え後の HTML
<html>
<head>
<title>JavaScript SYSTEM Variables Test Page</title>
</head>
<body>
<SCRIPT>
convertsystem function definition...
</SCRIPT>
<script LANGUAGE="Javascript">
<!--
//SYSTEM 変数
alert(psSRAPRewriter_convert_system(window.location, window.location.pathname,"window.location"));
// リライタは window.location.pathname を JavaScript の SYSTEM 変数として識別します。この変数の値はサーバー側で決定することができません。このため、リライタはこの変数の前に psSRAPRewriter_convert_pathname 関数を追加します。このラッパー関数は、クライアント側で変数の値を判断し、必要に応じて書き換えます。
//-->
</SCRIPT>
Testing JavaScript SYSTEM Variables
<br>
This page displays the path where the current page is located when loaded.
</body>
</html>
JavaScript URL 関数のサンプル
JavaScript の URL 関数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/functions/url/url.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<body>
JavaScript URL Function Test Page
<br>
<script language="JavaScript">
<!--
function test(one,two,three)
{
alert(one + "##" + two + "##" +three);
}
test("/test.html","../test.html","123");
window.open("/index.html","gen",width=500,height=500);
//-->
</SCRIPT>
</body>
</html>
ルール
<Function type="URL" name="test" paramPatterns="y,y"/>
<Function type="URL" name="window.open" paramPatterns="y"/>
書き換え後の HTML ページ
<html>
<body>
JavaScript URL Function Test Page
<br>
<script language="JavaScript">
<!--
function test(one,two,three)
{
alert(one + "##" + two + "##" +three);
}
test("/test.html","../test.html","123");
window.open("gateway-URL/portal-server-URL/index.html","gen",width= 500,height=500);
//-->
</SCRIPT>
</body>
</html>
JavaScript EXPRESSION 関数のサンプル
JavaScript の EXPRESS 関数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/functions/expr/expr.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<body>
JavaScript EXPRESSION Function Test Page
<br><br><br>
<script language="JavaScript">
<!--
function jstest2()
{
return ".html";
}
function jstest1(one)
{
return one;
}
var dir="/images/test"
var test1=jstest1(dir+"/test"+jstest2());
document.write("<a HREF="+test1+">Test</a>");
alert(test1);
//-->
</SCRIPT>
</body>
</html>
ルール
<Function type="EXPRESSION" name="jstest1" paramPatterns="y"/>
書き換え後の HTML ページ
<html>
<body>
JavaScript EXPRESSION Function Test Page
<br><br><br>
<script>
<!--
// ここには、psSRAPRewriter_convert_expression を含むさまざまな関数が表示 されます。
//-->
</SCRIPT>
<script language="JavaScript">
<!--
function jstest2()
{
return ".html";
}
function jstest1(one)
{
return one;
}
var dir="/images/test"
var test1=jstest1(psSRAPRewriter_convert_expression(dir+"/test"+jstest2 ()));
// このルールは、関数 jstest1 のタイプ EXPRESSION の最初のパラメータを書き換える必要があることを指定します。この式の値は /test/images/test.html です。この値の前に、Portal Server URL とゲートウェイ URL がプレフィックスとして追加されます。
document.write("<a HREF="+test1+">Test</a>");
alert(test1);
//-->
</SCRIPT>
</body>
</html>
JavaScript DHTML 関数のサンプル
JavaScript の DHTML 関数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/functions/dhtml/dhtml.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
<head>
Testing JavaScript DHTML Functions
<br>
<br>
<script>
<!--
document.write('<a href="/index.html">write</a><BR>')
document.writeln('<a href="index.html">writeln</a><BR>')
document.write("http://abc.sesta.com/index.html<BR>")
document.writeln("http://abc.sesta.com/index.html<BR>")
//-->
</SCRIPT>
</head>
<body BGCOLOR=white>
<br><br>
Testing document.write and document.writeln
</body>
</html>
ルール
<Function type="DHTML" name=" document.write" paramPatterns="y"/>
<Function type="DHTML" name=" document.writeln" paramPatterns="y"/>
書き換え後の HTML ページ
<html>
<head>
Testing JavaScript DHTML Functions
<br>
<br>
<script>
<!--
document.write('<a href="gateway-URL/portal-server-URL/index.html">write</a><BR>')
// 最初のルールは、DHTML JavaScript 関数 document.write の最初のパラメータを書き換える必要があることを示します。リライタは、最初のパラメータが単純な HTML 文であることを識別します。default_gateway_ruleset の HTML ルールのセクションには <Attribute name="href" /> ルールが定義されおり、書き換えが必要な文はこのルールによって決定されます。
document.writeln('<a href="gateway-URL/portal-server-URL/rewriter/JavaScript/functions/d html/index.html">writeln</a><BR>')
// 2 番目のルールは、DHTML JavaScript 関数 document.writeln の最初のパラメータを書き換える必要があることを示します。リライタは、最初のパラメータが単純な HTML 文であることを識別します。default_gateway_ruleset の HTML ルールのセクションには <Attribute name="href" /> ルールが定義されおり、書き換えが必要な文はこのルールによって決定されます。
document.write("http://abc.sesta.com/index.html<BR>")
document.writeln("http://abc.sesta.com/index.html<BR>")
// DHTML ルールは関数 document.write と document.writeln を検出しますが、上の文は書き換えられません。これは最初のパラメータが HTML ではないためです。パラメータは任意の文字列となり、リライタはこれをどのように書き換えるかを指示されていません。
//-->
</SCRIPT>
</head>
<body BGCOLOR=white>
<br><br>
Testing document.write and document.writeln
</body>
</html>
JavaScript DJS 関数のサンプル
JavaScript の DJS 関数のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/JavaScript/functions/djs/djs.html
- ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
- このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースを書き換えるためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の HTML ページ
<html>
Test for JavaScript DJS Functions
<br>
<script>
menu.addItem(new NavBarMenuItem("All Available
Information","JavaScript:top.location='http://abc.sesta.com'"));
//menu.addItem(new NavBarMenuItem("All Available Information","http://abc.sesta.com"));
</script>
</html>
ルール
<Function type="DJS" name="NavBarMenuItem" paramPatterns=",y"/>
<Variable type="URL" name="top.location"/>
書き換え後の HTML ページ
<html>
Testing JavaScript DJS Functions
<br>
<script>
menu.addItem(new NavBarMenuItem("All Available Information","javaScript:top.location='gateway-URL/http://abc.sesta .com'"));
// abc.sesta.com はゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストのエントリです。したがって、リライタはこの URL を書き換える必要があります。ただし、これは絶対 URL であるため、Portal Server の URL をプレフィックスとして追加する必要はありません。DJS ルールは、DJS 関数 NavBarMenuItem の 2 番目のパラメータを書き換える必要があることを指定します。ただし、2 番目のパラメータは同じく JavaScript 変数です。2 番目のルールは、この変数の値を書き換える場合に必要となります。2番目のルールは、JavaScript 変数 top.location の値を書き換える必要があることを指定します。これらのすべての条件に適合するため、URL が書き換えられます。
//menu.addItem(new NavBarMenuItem("All Available Information","http://abc.sesta.com"));
// DJS ルールは、関数 NavBarMenuItem の 2 番目のパラメータを書き換える必要があることを指定しますが、この文は書き換えられません。これはリライタが 2 番目のパラメータを HTML と認識しないためです。
</script>
</html>
XML 属性のサンプル
XML 属性のサンプルを使用するには
- このサンプルには次の場所からアクセスできます。
portal-server-URL/rewriter/XML/attrib.html
- このサンプルで指定されているルールを、 default_gateway_ruleset の「XML ソースを書き換えるためのルール (Rules for Rewriting XML Source)」セクションに追加します (まだ追加していない場合)。
- Access Manager 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
- ゲートウェイを再起動します。
gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start
書き換え前の XML
<html>
RW_START
<body>
<xml>
<baseroot href="/root.html"/>
</xml>
<xml>
<img href="image.html"/>
</xml>
<xml>
<string href="1234|substring.html"/>
</xml>
<xml>
<check href="1234|string.html"/>
</xml>
</body>
RW_END
</html>
ルール
<Attribute name="href" tag="check" valuePatterns="1234|"/>
書き換え後の HTML
<html>
Rewriting starts
<br>
<br>
<body>
<xml><baseroot href="/root.html"/></xml>
<xml><img href="image.html"/></xml>
<xml><string href="1234|substring.html"/></xml>
<xml><check href="1234|gateway-URL/portal-server-URL/rewriter/XML/string.html"/ ></xml>
// この文はルールで指定された条件と一致するため、書き換えられます。Attribute name は href、tag は check、valuePatterns は 1234 です。valuePatterns よりも後の文字列は書き換えられます。valuePatterns の詳細については、「ルールでのパターンマッチングの使用」を参照してください。
</body>
Rewriting ends
</html>
ケーススタディーここでは、メールクライアントのソース HTML ページの例について説明します。このケーススタディーでは、考えられるすべての例やルールについて説明することはできません。これはあくまでも、イントラネットページにルールを適用するために使用するルールセットの例です。
前提条件
このケーススタディーは、次のような前提で行います。
ページ例 1
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0053)http://abc.siroe.com/mailclient/destin/?Cmd=navbar -->
<HTML XMLNS:WM><HEAD>
<META http-equiv=Content-Type content="text/html; CHARSET=utf-8">
<META http-equiv=Pragma content=no-cache>
<META http-equiv=Expires content=0><!--Copyright (c) 2000 Microsoft Corporation. All rights reserved.--><!--CURRENT FILE== "IE5" "WIN32" navbar -->
<STYLE>WM¥:DROPMENU {
BEHAVIOR: url(http://abc.siroe.com/mailweb/controls/dropmenu.htc)
}
</STYLE>
<LINK href="destin_files/navbar.css" type=text/css rel=stylesheet>
<SCRIPT language=javascript>
var g_szUserBase= "http://abc.siroe.com/mailclient/destin"+"/";
var g_szFolder= ".";
var g_szVirtualRoot= "http://abc.siroe.com/mailweb";
var g_szImagePath= g_szVirtualRoot + "/img/";
</SCRIPT>
<SCRIPT src="/destin_files/navbar.js"></SCRIPT>
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY oncontextmenu=return(event.ctrlKey); onselectstart=return(false);
id=outbar_mainbody style="BACKGROUND-COLOR:appworkspace" leftMargin=0
topMargin=0 scroll=no>
<TABLE class=nbTableMain id=nbTableMain style="HEIGHT:100%" cellSpacing=0
cols=1 cellPadding=0 rows="2">
<TBODY>
<TR>
<TD class=treeBrand>
<DIV class=treeOFLOW><IMG
style="PADDING-RIGHT:0px; PADDING-LEFT:0px; PADDING-BOTTOM:0px; PADDING-TOP:0px"
src="/destin_files/logo-ie5.gif" border=0></DIV></TD></TR>
<TR height="100%">
<TD>
<TABLE class=nbTable cellSpacing=0 cols=1 cellPadding=0 rows="4">
<TBODY>
<TR>
<TD class=nbFlybar id=show_navbar onkeydown=flybar_keydown()
onclick=ToggleTab(this.id) tabIndex=0 noWrap>
<DIV class=treeOFLOW>Shortcuts</DIV></TD></TR>
<TR style="HEIGHT: 100%">
<TD id=idOutbarpane style="TEXT-ALIGN:center" vAlign=top><A
id=inbox
href="http://abc.siroe.com/mailclient/destin/Inbox/?Cmd=contents&am p;Page=1"
target=viewer alt="Go to inbox"><IMG class=nbImage alt="Go to inbox"
src="destin_files/navbar-inbox.gif"></A>
<DIV class=nbLabel>Inbox</DIV><BR><A id=calendar
href="http://abc.siroe.com/mailclient/destin/Calendar/?Cmd=contents"
target=viewer alt="Go to calendar"><IMG class=nbImage
alt="Go to calendar" src="destin_files/navbar-calendar.gif"></A>
<DIV class=nbLabel>Calendar</DIV><BR><A id=contacts
href="http://abc.siroe.com/mailclient/destin/Contacts/?Cmd=contents"
target=viewer alt="Go to contacts"><IMG class=nbImage
alt="Go to contacts" src="destin_files/navbar-contacts.gif"></A>
<DIV class=nbLabel>Contacts</DIV><BR><A id=options
href="http://abc.siroe.com/mailclient/destin/?Cmd=options"
target=viewer alt="Go to options"><IMG class=nbImage
alt="Go to options" src="destin_files/navbar-options.gif"></A>
<DIV class=nbLabel>Options</DIV></TD></TR>
<TR style="HEIGHT: 1.5em">
<TD class=nbFlybar id=show_folders onkeydown=flybar_keydown()
onclick=ToggleTab(this.id) tabIndex=0 noWrap>
<DIV class=treeOFLOW>Folders</DIV></TD></TR>
<TR>
<TD class=nbTreeProgress id=treeProgress style="DISPLAY:none"
vAlign=top noWrap><SPAN id=idLoading
style="OVERFLOW:hidden">Loading...</SPAN>
</TD></TR></TBODY></TABLE></TD></TR></TBODY></TABLE>
</BODY></HTML>
説明
表 3-3 は、サンプルルールセットとケーススタディーの間のマッピングを示しています。
Outlook Web Access 用のルールセット
SRA ソフトウェアでは、Sun Java System Web Server および IBM アプリケーションサーバー上で、Outlook Web Access (OWA) から MS Exchange 2000 SP3 インストールおよび MS Exchange 2003 にアクセスする機能がサポートされます。
OWA のルールセットを設定するには
- Access Manager 管理コンソールに管理者としてログインします。
- 「サービス設定」タブを選択します。
- 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
「ゲートウェイ」ページが表示されます。
- 属性を設定するゲートウェイプロファイルをクリックします。
「ゲートウェイプロファイルを編集」ページが表示されます。
- 「URI をルールセットにマップ」フィールドで、Exchange 2000 がインストールされているサーバー名を入力し、それに続けて Exchange 2000 Service Pack 4 OWA ルールセットを入力します。
例
exchange.domain.com|exchange_2000sp3_owa_ruleset.
パブリックフォルダの使用
Exchange 側では、パブリックフォルダは NTLM 認証を使用するように設定されています。これは、HTTP 基本認証を使用するように変更する必要があります。
この変更を行うには、Exchange サーバーで「コントロールパネル」 --> 「管理ツール」の順に選択し、「インターネットインフォメーションサービス」を開きます。
「既定の Web サイト」の下に、パブリックフォルダに関する「パブリック」というタブがあります。タブを右クリックし、プロパティーを選択します。「ディレクトリセキュリティー」タブをクリックします。「匿名アクセスと認証」コントロールパネルで「編集」を選択します。「基本認証」チェックボックスのみを選択し、他のすべてのチェックボックスの選択を解除します。
6.x と 3.0 のルールセットのマッピング次の表は、SRA のリライタルールと従来のリリースの Portal Server 製品とのマッピングを示しています。