Sun ロゴ      前へ      目次      索引      次へ     

Sun ONE Portal Server, Secure Remote Access 6.2 管理者ガイド

第 3 章
リライタ

この章では、リライタルールを定義する方法と、SunTM ONE Portal Server 管理コンソールでリライタを設定する方法について説明します。

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


リライタの概要

リライタは Secure Remote Access のコンポーネントです。リライタを使用することで、ゲートウェイをポイントするように Web ページの URI (Uniform Resource Identifier) を変更し、エンドユーザーはイントラネットをブラウズすることができます。URI は、登録されているネームスペースに名前をカプセル化し、それにネームスペースのラベルを付ける方法を定義します。最も一般的な URI は URL (Uniform Resource Locator) です。URL は、HTTP、FTP、mailto、file、news など、さまざまなプロトコルを持つことができます。

リライタは、RFC-1738 に指定され、HTTP または HTTPS のプロトコルを持つすべての標準 URL を認識し、それをリライトします。プロトコルは、大文字と小文字が区別されません。たとえば、hTtP、HTtp、および httP はすべて有効です。次に、URL の例を示します。

http://www.my.work.com/

http://www.w3.org:8000/imaginary/test

http://www.myu.edu/org/admin/people#andy

http://info.my.org/AboutUs/Index/Phonebook?dobbins

http://www.w3.org/RDB/EMP?where%20name%3Ddobbins

http://info.my.org/AboutUs/Phonebook

http://user:password@abc.com

リライタは、Internet Explorer と Netscape でサポートされる、標準ではない一部の基本 URL のリライトをサポートします。標準以外の URL を標準形式に変換するための情報は、URL が表示されるページのベース URL から取得されます。これには次の情報が含まれます。

リライタは、相対 URL の一部として使用される場合にだけバックスラッシュをサポートします。

次に例を示します。

http://abc.sesta.com¥index.html はリライトされます。

次の URL はリライトされません。

http:¥¥abc.sesta.com.

http:/abc.com


リライタの使用例

ユーザーがゲートウェイを通じてイントラネット Web ページにアクセスしようとするときに、Web ページはリライタによって使用可能となります。リライタは、次のコンポーネントによって使用されます。

URL スクレイパー

URL スクレイパープロバイダは、設定されている URI からコンテンツを取得し、それをブラウザに送信する前にすべての相対 URI を絶対 URI に展開します。

たとえば、ユーザーがコンテンツを持つ次のサイトにアクセスしようとするとします。

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

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

<a href="http://yahoo.com/mypage.html">

ここで、http://yahoo.com/test/ はページのベース URL です。

URL スクレイパープロバイダの詳細については、『Sun ONE 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 設定」セクションで行います。

ルールセットの定義については、『Sun ONE Portal Server 管理者ガイド』を参照してください。新しいルールセットを作成したら、必要なルールを定義する必要があります。

ここでは、次の項目について説明します。

パブリックインタフェース (ルールセット 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>

ルールの記述手順

次に、ルールを記述するための一般的な手順を示します。

ルールセットのガイドライン

次の点に注意してください。

ルールセットのルート要素の定義

ルールセットのルートには、次の 2 つの属性があります。


言語ベースのルールの定義 (ルールの定義)

ルールは、次の言語に基づきます。

HTML コンテンツのルール

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

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

このルールは値をリライトする必要のあるタグの属性を特定します。属性値には、簡易 URL、JavaScript、DHTML コンテンツがあります。次に例を示します。

この節は、次の項目から構成されています。

属性ルールの構文

<Attribute name="attributeName" [tag="*" valuePatterns="" source="*" type=填RL|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=登nClicktype=泥JS>

<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.jargt;

<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 /appletcodecode=迭ewriteURLinApplet.classarchive=test.jargt;

<param name="Test1" value="gateway-URL/http://abc.siroe.com/index.html">

</APPLET>

説明

default_gateway_ruleset<Attribute name="codebase"/> が定義されているため、codebase attribute はリライトされます。

名前が Test で始まるすべてのパラメータがリライトされます。アプレットコードが表示されるページのベース URL、およびゲートウェイ URL が、params タグの値の前、および value 属性の値の前に追加されます。

ルールでのパターンマッチングの使用

valuePatterns フィールドを使用してパターンマッチングを実行し、リライトが必要な文の特定部分を識別することができます。

ルールの一部として valuePatterns を指定すると、一致したパターンに続くすべてのコンテンツがリライトされます。

次のフォーム例のルールを考えてみます。

<Form source="*/source.html" name="form1" field="visit" [valuePatterns="0|1234|"]/>

ここで

source は、フォームが表示される HTML ページの URL です。

name はフォーム名です。

field は値をリライトする必要があるフォームのフィールドです。

valuePatterns はリライトが必要な部分文字列を示します。valuePatterns の後に表示されるすべてのコンテンツはリライトされます (省略可能、デフォルトは値全体のリライトが必要であることを示す "")。「ルールでのパターンマッチングの使用」を参照してください。

valuePatterns でのワイルドカードの使用

アスタリスク (*) を使用して、リライトのパターンマッチングを実行できます。

valuePatterns フィールドに * だけを指定することはできません。* はあらゆる項目との一致を示すため、valuePattern に続くコンテンツがなくなり、リライタがリライトするコンテンツもなくなります。* は *abc などの他の文字列と一緒に使用できます。この場合、*abc に続くすべてのコンテンツがリライトされます。


アスタリスク (*) はルールのどのフィールドでも、ワイルドカードとして 使用できます。ただしルールのすべてのフィールドに * を使用することは できません。すべてのフィールドに * が含まれている場合、ルールは無視 されます。エラーメッセージは表示されません。


* や ** は区切り文字と一緒に使用できます。区切り文字は、元の文に含まれる複数のフィールドを区切ります。1 文字のワイルドカード (*) はリライトされないフィールドと一致し、2 文字のワイルドカード (**) はリライトが必要なフィールドと一致します。

表 3-1 は、* ワイルドカードの使用例を示しています。表は 3 つの列で構成されています。最初の列は、リライトされる文の例を示します。2 番目の列は、valuePatterns の値の例を示します。3 番目の列は、リライトの内容を説明します。

表 3-1 * ワイルドカードの使用例

URL

valuePatterns

説明

url1, url2, url3, url4

valuePatterns = "**, *, **, *"

この場合 ** がリライトされる 部分を表すため、url1url3 がリライトされる

XYZABChttp://host1.
sesta.com/dir1.html

valuePatterns = "*ABC"

この場合、 http://host1.sesta.com/dir 1.html の部分だけがリライト される。*ABC の後のすべてを リライトする必要がある

"0|dir1|dir2|dir3|dir 4|test|url1

valuePatterns = "*|*|**|*|**|*|"

この場合dir2dir4、および url1 がリライトされる。リラ イトが必要な最後のフィールド は、** を使用して指定する必 要はない

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=妬mgsrc*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 だけがプレフィックスとして追加されます。値が文字列ではなく、別の JavaScript 値である var imagsrc2 はリライトされません。

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=兎xpvartype="EXPRESSION"/>

または

<Variable name=兎xpvar>

出力

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=砺ariableNametype="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=電htmlVartype="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 属性ルールとの一致によってコンテンツがリライトされます。

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

これは JavaScript コンテンツを含む JavaScript 変数です。

この節は、次の項目から構成されています。

DJS 変数の構文

<Variable name=砺ariableNametype="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=砺ariableNametype="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=努indow.location.pathnametype="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 関数は実行時に出力をリライトします。


上の例では、変数 test1 を JavaScript 変数ルールの一部として指定する必 要がありません。リライトは、jstest1 の関数ルールによって行われます。


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=填RLvaluePatterns="*" 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 コンテンツのルール」を参照してください。


ゲートウェイサービスのリライタの設定

「リライタ」タブでゲートウェイサービスを使用することで、次の基本タスクと高度なタスクを実行できます。

基本タスク

すべての URL のリライトの有効化

ゲートウェイサービスで「すべての URL のリライトを有効」オプションを有効にすると、「ドメインとサブドメインのプロキシ」リストのエントリをチェックせずに、リライタはすべての URL をリライトします。「ドメインとサブドメインのプロキシ」リストのエントリは無視されます。

ゲートウェイによるすべてのURLのリライトを有効にするには
  1. SunTM ONE Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 編集する属性が含まれるゲートウェイプロファイルの「編集」をクリックします。
  6. 「ゲートウェイプロファイルを編集」ページが表示されます。

  7. 「リライタ」タブをクリックします。
  8. 「すべての URL のリライトを有効」チェックボックスにチェックマークを付け、ゲートウェイによるすべての URL のリライトを有効にします。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

URI とルールセットのマッピングリストの作成

ルールセットは、Identity Server 管理コンソールの「Portal Server 設定」の下のリライタサービスに作成されます。詳細については、『Sun ONE Portal Server 管理者ガイド』を参照してください。

ルールセットを作成したら、「URI とルールセットのマッピング」リストを使用してドメインとルールセットを関連付けます。デフォルトでは、「URI とルールセットのマッピング」リストに次の 2 つのエントリが追加されます。

これは、ドメインが sun.com のポータルディレクトリのすべてのページに default_gateway_ruleset を適用することを指定しています。他のすべてのページには、汎用ルールセットが適用されます。default_gateway_rulesetgeneric_ruleset は、すでにパッケージ化されているルールセットです。


ポータルデスクトップに表示されるすべてのコンテンツには、それがどこ からフェッチされたかに関係なく default_gateway_ruleset のルール セットが適用されます。

たとえば、URL yahoo.com のコンテンツを集めるようにデスクトップを設 定すると仮定します。Portal Server は sesta.com 内にあります。フェッチ されたコンテンツに sesta.com のルールセットが適用されます。



ルールセットを指定するドメインは、「ドメインとサブドメインのプロキ シ」リストに含まれている必要があります。


構文内でのワイルドカードの使用

ルールセット内でアスタリスクを使用して、完全修飾 URI または部分 URI をマッピングできます。

たとえば、次のように指定することで、index.html ページに java_index_page_ruleset を適用できます。

または、次のように指定することで、java ディレクトリのすべてのページを java_directory_ruleset に適用できます。

www.sun.com/java/* /java_directory_ruleset

URI をルールセットにマッピングするには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックします。
  8. 「URI とルールセットのマッピング」フィールドまでスクロールします。
  9. 「URI とルールセットのマッピング」フィールドに適切なドメイン名またはホスト名とルールセットを入力し、「追加」をクリックします。
  10. 「URI とルールセットのマッピング」リストにエントリが追加されます。

    ドメインまたはホスト名とルールセットは次の形式で指定します。

    ドメイン名|ルールセット名

    eng.sesta.com|default

パーサーと MIME のマッピングリストの作成

リライタでは、コンテンツタイプ、すなわち 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 のマッピングを指定するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックします。
  8. 「パーサーと MIME のマッピング」フィールドまでスクロールし、編集ボックスに必要な MIME タイプを追加します。複数のエントリを区切るときは、セミコロンまたはカンマを使用します。
  9. エントリは HTML=text/html;text/htm の形式で指定します。

  10. 「追加」をクリックし、必要なエントリをリストに追加します。
  11. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  12. 端末ウィンドウからゲートウェイを再起動します。
  13. portal-server-install-root/SUNWps/bin/gateway -n gateway-profile-name start

デフォルトのドメインとサブドメインの指定

デフォルトのドメインとサブドメインは、URL にホスト名だけが含まれ、ドメインとサブドメインが指定されていない場合に便利です。この場合、ゲートウェイはホスト名がデフォルトのドメインとサブドメイン内にあると仮定し、そのように処理を進めます。

たとえば、URL のホスト名が host1、デフォルトのドメインとサブドメインが red.sesta.com のように指定されている場合、ホスト名は host1.red.sesta.com として解決されます。

デフォルトのドメインとサブドメインを指定するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブをクリックします。
  3. 「SRA 設定」の「ゲートウェイ」の隣の右矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 編集する属性が含まれるゲートウェイプロファイルの「編集」をクリックします。
  6. 「ゲートウェイプロファイルを編集」ページが表示されます。

  7. 「デフォルトのドメインとサブドメイン」フィールドまでスクロールし、必要なデフォルト値を subdomain.domain の形式で入力します。
  8. 「ゲートウェイプロファイルを編集」ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  9. 端末ウィンドウからゲートウェイを再起動します。
  10. portal-server-install-root/SUNWps/bin/gateway -n gateway-profile-name start

高度なタスク

リライトしない URI のリストの作成

デフォルトのドメインとサブドメインを指定するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「リライトしない URI のリスト」フィールドまでスクロールし、編集ボックスに URI を追加します。
  9. 注 : このリストに #* を追加することで、href ルールがルールセットの一部である場合でも URI をリライトできます。

  10. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  11. 端末ウィンドウからゲートウェイを再起動します。
  12. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

MIME 推測の有効化

リライタは、パーサーの選択にページの MIME タイプを使用します。WebLogic や Oracle などの一部の Web サーバーは MIME タイプを送信しません。これに対応するには、「パーサーと URI のマッピング」リストボックスにデータを追加して、MIME 推測機能を有効にします。

MIME 推測を有効にするには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「MIME 推測を有効」チェックボックスにチェックマークを付け、MIME 推測を有効にします。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. 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 にマッピングするには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「パーサーと MIME のマッピング」フィールドまでスクロールし、編集ボックスにデータを追加します。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

難読化の有効化

難読化を有効にすることで、リライタはページのイントラネット URL が判読されないように URI をリライトします。

難読化を有効にするには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「難読化を有効」チェックボックスにチェックマークを付け、難読化を有効にします。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

難読化のためのシード文字列の指定

URI の難読化には、シード文字列が使用されます。これは、難読化アルゴリズムによって生成されるランダムな文字列です。


難読化された URI をブックマークしても、このシード文字列が変更された り、ゲートウェイが再起動された場合は機能しなくなります。


難読化のためのシード文字列を指定するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「難読化のためのシード文字列」フィールドまでスクロールし、編集ボックスに文字列を追加します。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. 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 のリストを作成するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「あいまいにしない URI のリスト」フィールドまでスクロールし、編集ボックスに URI を追加します。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. 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 だけに適用され、JavaScript によって生成さ れるダイナミック URI には適用されません。


ゲートウェイプロトコルと元の URI プロトコルを同一化するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「リライタ」タブをクリックし、「拡張プロパティ」サブセクションを表示します。
  8. 「ゲートウェイプロトコルを元の URI プロトコルと同じにする」チェックボックスにチェックマークを付けます。
  9. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  10. 端末ウィンドウからゲートウェイを再起動します。
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start


デバッグログを使用したトラブルシューティング

リライタに関する問題の原因を特定するには、デバッグログを有効にする必要があります。

デバッグメッセージは、次のように分類されます。

リライタのデバッグレベルの設定

リライタのデバッグレベルを設定するには
  1. ゲートウェイマシンに root としてログインし、次のファイルを編集します。
  2. gateway-install-root/SUNWam/lib/AMConfig.properties

  3. デバッグレベルを設定します。
  4. com.iplanet.services.debug.level=

    次のデバッグレベルがあります。

    error : 重要なエラーだけがデバッグファイルに記録されます。このようなエラーが発生すると、通常、リライタは機能を停止します。

    warning : 警告メッセージが記録されます。

    message : すべてのデバッグメッセージが記録されます。

    off : デバッグメッセージは記録されません。

  5. AMConfig.properties ファイルの次のプロパティに、デバッグファイルのディレクトリを指定します。
  6. com.iplanet.services.debug.directory=/var/opt/SUNWam/debug

    この /var/opt/SUNWam/debug は、デフォルトのデバッグディレクトリです。

  7. 端末ウィンドウからゲートウェイを再起動します。
  8. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

デバッグファイル名

デバッグレベルを「message」に設定すると、複数のファイルが生成されます。表 3-2 はリライタのデバッグファイルとその内容を示しています。最初の列はデバッグファイルの名前、2 番目の列はファイルの内容の説明です。

表 3-2 リライタのデバッグファイル

ファイル名

説明

RuleSetInfo

リライトに使用されたすべてのルールは、このファイルに記録されます。

Original Pages

ページの URI、解決された URI (ページ URI と異なる場合)、コンテンツの MIME、ページに適用されたルールセット、パーサー MIME、元のコンテン ツが記録されます。

このファイルには、パースに関連する具体的な error/warning/message も 記録されます。

message モードではすべての内容が記録され、warning モードと error モー ドではリライト時に発生した例外だけが記録されます。

Rewritten Pages

ページの URI、解決された URI (ページ URI と異なる場合)、コンテンツの MIME、ページに適用されたルールセット、パーサー MIME、リライトされ たコンテンツが記録されます。

この情報は、デバッグモードを message に設定した場合にだけ記録されま す。

Unaffected Pages

このファイルには、変更されなかったページのリストが含まれます。

URIInfo Pages

このファイルには、検出され、変換された URL が含まれます。コンテンツ が元のデータと同じ状態で残されたすべてのページの詳細が記録されます。

記録される詳細情報は、ページの URI、MIME、符号化データ、リライト時 に適用されたルールセットの ID、パーサー MIME です。

これらのファイルのほかに、リライタはこれらのファイルに記録されないデバッグメッセージを記録するファイルを生成します。このファイルの名前は 2 つの部分から構成されます。最初の部分は pwRewriter または psSRARewriter で、2 番目の部分は portal または ゲートウェイプロファイル名 を使用した拡張子です。

デバッグファイルは、ポータルまたはゲートウェイに表示されます。これらのファイルは、AMConfig.properties ファイルに指定されているディレクトリに格納されます。

リライタコンポーネントは、デバッグ用に次のファイルを生成します。

prefix_RuleSetInfo.extension

prefix_OrginalPages.extension

prefix_RewrittenPages.extension

prefix_UnaffectedPages.extension

prefix_URIInfo.extension

ここで

prefix は、URL スクレイパーを使用した場合は psRewriter、ゲートウェイを使用した場合は psSRAPRewriter です。

extension は、URL スクレイパーを使用した場合は portal 、ゲートウェイを使用した場合はゲートウェイプロファイル名です。

たとえば、ページの変換にゲートウェイ上のリライタとデフォルトのゲートウェイプロファイルを使用した場合は、次のデバッグファイルが生成されます。

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 属性のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/HTML/attrib/attribrule.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.comhost1.siroe.com が定義されていることを確認してください。
  4. これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。

このサンプルに指定されているルールはすでに 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/logo.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 トークンのサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/HTML/jstokens/JStokens.html

  3. このサンプルで指定されているルールを、default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. 端末ウィンドウからゲートウェイを再起動します。
  6. 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=登nClicktype=泥JS>

<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 ファイルに onAbortonBluronFocusonChange、および onClick のルールが定義されているためです。リライタは JavaScript トークンを検出し、後の処理のために JavaScript 関数ルールに渡します。サンプルの 2 番目のルールは、リライトするパラメータをリライタに伝えます。

</body>

<br>

Rewriting ends

</html>

HTML フォームのサンプル

フォームのサンプルを使用するには
  1. 次の場所にあるサンプルフォームにアクセスします。
  2. portal-server-URL/rewriter/HTML/forms/formrule.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
  4. これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。

  5. このサンプルで指定されているルールを、default_gateway_ruleset の「HTML 属性をリライトするためのルール (Rules for Rewriting HTML Attributes)」セクションに追加します。
  6. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  7. 端末ウィンドウからゲートウェイを再起動します。
  8. 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_rulesetdefault_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 に一致する valuePatterns0|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 アプレットのサンプル

アプレットのサンプルを使用するには
  1. アプレットクラスファイルを取得します。RewriteURLinApplet.class ファイルは、次の場所にあります。
  2. portal-server-URL/rewriter/HTML/applet/appletcode

    アプレットコードを参照するページのベース URL は次のとおりです。

    portal-server-URL/rewriter/HTML/applet/rule1.html

  3. このサンプルで指定されているルールを、default_gateway_ruleset の「HTML 属性をリライトするためのルール (Rules for Rewriting HTML Attributes)」セクションに追加します。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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/appletcode=Rewrite URLinApplet.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 変数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/variables/url/js_urls.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
  4. これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。

  5. このサンプルで指定されているルールを、default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します。
  6. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  7. ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
  8. 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=妬mgsrctype="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 変数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/variables/expr/expr.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
  6. 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=摘XPRESSIONname="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 変数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/variables/dhtml/dhtml.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
  4. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ルールを追加した場合は、次のコマンドでゲートウェイを再起動します。
  6. 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 変数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/variables/djs/djs.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。
  4. このサンプルで指定される 2 つのルールを、default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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=電JSVartype="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/djs/images/logo.gif" >

// default_gateway_ruleset<Attribute name="src"/> ルールが定義されているので、この行はリライトされます。

<br>

Image

</body>

</html>

JavaScript SYSTEM 変数のサンプル

JavaScript の SYSTEM 変数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/variables/system/system.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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 it is loaded.

</body>

</html>

ルール

<Variable name=努indow.location.pathnametype="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 it is loaded.

</body>

</html>

JavaScript URL 関数のサンプル

JavaScript の URL 関数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/functions/url/url.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  4. ゲートウェイを再起動します。
  5. 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 関数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/functions/expr/expr.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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 関数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/functions/dhtml/dhtml.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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/dhtml/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.writedocument.writeln を検出しますが、上の文はリライトされません。これは最初のパラメータが HTML ではないためです。パラメータは任意の文字列となり、リライタはこれをどのようにリライトするかを指示されていません。

//-->

</SCRIPT>

</head>

<body BGCOLOR=white>

<br><br>

Testing document.write and document.writeln

</body>

</html>

JavaScript DJS 関数のサンプル

JavaScript の DJS 関数のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/JavaScript/functions/djs/djs.html

  3. ゲートウェイサービスの「ドメインとサブドメインのプロキシ」リストに abc.sesta.com が定義されていることを確認してください。
  4. これが定義されていないと、直接の接続が想定され、ゲートウェイ URL がプレフィックスとして追加されません。

  5. このサンプルで指定されているルールを、 default_gateway_ruleset の「JavaScript ソースをリライトするためのルール (Rules for Rewriting JavaScript Source)」セクションに追加します (まだ追加していない場合)。Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  6. ゲートウェイを再起動します。
  7. 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=鍍op.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 属性のサンプルを使用するには
  1. このサンプルには次の場所からアクセスできます。
  2. portal-server-URL/rewriter/XML/attrib.html

  3. このサンプルで指定されているルールを、 default_gateway_ruleset の「XML ソースをリライトするためのルール (Rules for Rewriting XML Source)」セクションに追加します (まだ追加していない場合)。
  4. Identity Server 管理コンソールの「Portal Server 設定」のリライタサービスで default_gateway_ruleset を編集します。
  5. ゲートウェイを再起動します。
  6. 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 namehreftagcheckvaluePatterns1234 です。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&amp;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 は、サンプルルールセットとケーススタディの間のマッピングを示しています。最初の列はページのコンテンツ、2 番目の列は適用されるルール、3 番目の列はリライタからの出力を示し、4 番目の列は、ルールがどのように適用されるかを示しています。

表 3-3 サンプルルールセットとケーススタディのマッピング 

ページコンテンツ

適用されるルール

リライタの出力

説明

var g_szVirtualRoot="http: //abc.siroe.com/mailwe b";

<Variable name="URL"> g_szVirtualRoot </Variable>

var g_szVirtualRoot= "http://gateway.sest a.com/http://abc.sir oe.com/mailweb";

g_szVirtualRoot は単 一の URL を値に持つ 変数です。

このルールは、タイプ URL の変数 g_szVirtualRoot を検 索するようにリライタ に伝えます。このよう な変数が Web ページ に存在する場合、リラ イタはこれを絶対 URL に変換し、ゲートウェ イ URL をプレフィッ クスとして追加しま す。

src="/destin_files/log o-ie5.gif"

<Attribute name="src" />

src="http://gateway. sesta.com/http://abc .siroe.com/destin_fi les/logo-ie5.gif

src は属性名です。タ グまたは valuePattern は付けられません。

このルールは、src と いう名前の属性をすべ て検索し、その属性の 値をリライトするよう にリライタに伝えま す。

href="http://abc.siroe .com/mailclient/destin /Inbox/?Cmd=contents&a mp;Page=1"

<Attribute name="href"/>

href="http://gateway .sesta.com/http://ab c.siroe.com/mailclie nt/destin/Inbox/?Cmd =contents&amp;Page=1 "

href は属性名です。タ グまたは valuePattern は付けられません。

このルールは、名前 href という名前の属性 をすべて検索し、その 属性の値をリライトす るようにリライタに伝 えます。


ルールセットを適用する順序は、ホスト名-サブドメイン-ドメインの順で す。

たとえば、「ドメインベースのルールセット」リストに次のエントリを指 定していると仮定します。

sesta.com|ruleset1

eng.sesta.com|ruleset2

host1.eng.sesta.com|ruleset3

ruleset3host1 のすべてのページに適用されます。

ruleset2 は、host1 から取得されたページを除く eng のすべてのページ に適用されます。

ruleset1 は、eng サブドメインおよび host1 から取得されたページを除 く、sesta.com ドメインのすべてのページに適用されます。


  1. ページの上部または下部で「保存」をクリックし、変更内容を記録します。
  2. 端末ウィンドウからゲートウェイを再起動します。
  3. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

Outlook Web Access 用のルールセット

Secure Remote Access は、Sun ONE Web サーバーおよび IBM アプリケーションサーバー上で稼動する Outlook Web Access 2000 SP3 をサポートしています。

OWA のルールセットを設定するには
  1. Identity Server 管理コンソールに管理者としてログインします。
  2. 「サービス設定」タブを選択します。
  3. 「SRA 設定」の「ゲートウェイ」の隣の矢印をクリックします。
  4. 「ゲートウェイ」の「プロファイル」ページが表示されます。

  5. 属性を設定するゲートウェイプロファイルをクリックします。
  6. 「ゲートウェイ - (ゲートウェイプロファイル名)」ページが表示されます。

  7. 「URI とルールセットのマッピング」フィールドで、Exchange 2000 がインストールされているサーバー名を入力し、それに続けて Exchange 2000 Service Pack 3 OWA ルールセットを入力します。
  8. exchange.domain.com|exchange_2000sp3_owa_ruleset


6.x と 3.0 のルールセットのマッピング

次の表は、Sun ONE Portal Server, Secure Remote Accessと、SunTM ONE Portal Server の従来のリリースのリライタルールのマッピングを示しています。

表 3-4 SP4 のルールのマッピング 

リライタ 6.0 の DTD 要素

リライタ 3.0 リストボックス名

HTML コンテンツのルール

属性 : URL

HTML 属性のリライト

属性 : DJS

JavaScript を含む HTML 属性のリライト

フォーム

フォーム入力タグリストのリライト

アプレット

アプレット / オブジェクトパラメータ値リストのリライト

JavaScript コンテンツのルール

変数 : URL

URL タイプの JavaScript 変数のリライト

変数 : EXPRESSION

JavaScript 変数関数のリライト

変数 : DHTML

HTML タイプの JavaScript 変数のリライト

変数 : DJS

JavaScript タイプの JavaScript 変数のリライト

変数 : SYSTEM

JavaScript システム変数のリライト

関数 : URL

JavaScript 関数パラメータのリライト

関数 : EXPRESSION

JavaScript 関数パラメータ関数のリライト

関数 : DHTML

HTML タイプの JavaScript 関数パラメータのリライト

関数 : DJS

JavaScript タイプの JavaScript 関数パラメータのリライト

XML コンテンツのルール

属性 : URL

XML ドキュメントの属性値のリライト

TagText

XM1 ドキュメントのテキストデータのリライト

CSS コンテンツのルール

ルールは必要ない。デフォルトでは、すべての URL が変換される

WML コンテンツのルール

ルールは定義されていない。WML は HTML として処理され、HTML ルールが適用さ れる

WMLScript コンテンツのルール

WML スクリプトはサポートされていない



前へ      目次      索引      次へ     


Copyright 2003 Sun Microsystems, Inc. All rights reserved.