Sun Java System Portal Server Secure Remote Access 7.2 管理指南

HTML 內容範例

HTML 屬性範例

Procedure使用 HTML 屬性範例

  1. 您可自下列路徑存取此範例:

    portal-server-URL /rewriter/HTML/attrib/attribute.html

  2. 請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.comhost1.siroe.com

    若未定義,則會採用直接連接,且不前置閘道 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>

// 重新寫入此 URL 是因為 <Attrib name="href"/> 規則已於 default_gateway_ruleset 中加以定義。由於此 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 記號範例

Procedure使用 HTML JavaScript 記號範例:

  1. 您可自下列路徑存取此範例:

    portal-server-URL /rewriter/HTML/jstokens/JStokens.html

  2. 將此範例中指定的規則新增至 [重新寫入 JavaScript 來源的規則] 部分的 default_gateway_ruleset 中。

  3. 在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset

  4. 從終端機視窗重新啟動閘道:


    ./psadmin start-sra-instance –u amadmin – f  <password file> –N <profile name>– t  <gateway>
    

重新寫入前的 HTML

<html>
<head>
Rewriting starts
<script language="javascript">
function Check(test,ind){
if (ind == \qblur\q)
{alert("testing onBlur")}
if (ind == \qfocus\q)
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check
(\q/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check
(\q/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check
(\q/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check
(\q/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check
(\q/focus.html\q,\qblur\q);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 == \qblur\q)
{alert("testing onBlur")}
if (ind == \qfocus\q)
{alert("testing onFocus")}
}
</SCRIPT>
</head>
<body>
<form>
<input TYPE=TEXT SIZE=20 value=blur onAbort="Check
(\qgateway URL/portal-server-URL/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=blur onBlur="Check
(\qgateway URL/portal-server-URL/indexblur.html\q,\qblur\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onFocus="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onChange="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qfocus\q);return;">
<input TYPE=TEXT SIZE=20 value=focus onClick="Check
(\qgateway URL/portal-server-URL/focus.html\q,\qblur\q);return;">

// 所有敘述是依照此範例重寫。已在每種情況中前置閘道 URL 與 Portal Server URL。這是因為 onAbortonBluronFocusonChangeonClick 的規則都已在 default_gateway_ruleset 檔案中定義。Rewriter 會偵測 JavaScript 記號,並將之傳送至 JavaScript 函數規則中以便進行進一步的處理。此範例中的第二個規則會告知 Rewriter 該重新寫入哪一個參數。

</body>
<br>

Rewriting ends

</html>

HTML 表單範例

Procedure使用表單範例

  1. 您可自下列路徑存取表單範例:

    portal-server-URL/rewriter/HTML/forms/formrule.html

  2. 請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com

    若未定義,則會採用直接連接,且不前置閘道 URL。

  3. 將此範例中指定的規則新增至 [重新寫入 HTML 屬性的規則] 部分的 default_gateway_ruleset 中。

  4. 在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset

  5. 從終端機視窗重新啟動閘道:


    ./psadmin start-sra-instance –u amadmin – f  <password file> –N <profile name>– t  <gateway>
    

重新寫入前的 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">

// 重新寫入此 URL 是因為已在 default_gateway_ruleset 中將 <Attribute name="action"/> 定義為 HTML 規則的一部分。由於此 URL 應該是絕對 URL,因此僅需前置閘道 URL。請確定您已於閘道服務的 [網域與子網域的代理伺服器] 清單中定義 abc.sesta.com。否則,會認為是直接連接,而不會前置閘道 URL。

<input type=hidden name=name1 value=
"0|1234|gateway URL/portal-server-URL/test.html">

// 此處的表單名稱為 form1,而欄位名稱則為 name1。上述名稱與規則中指定的表單名稱與欄位名稱相符。規則指出 valuePatterns0|1234|,其符合此陳述式中的 value。因此會重新寫入出現在 valuePattern 之後的 URL。將前置 Portal Server URL 與閘道 URL。請參閱在規則中與式樣相符以取得 valuePatterns 的詳細資訊。

<input type=hidden name=name3 value="../../html/test.html">

// 未重新寫入此 URL 是因為此 name 不符合規則中所指定的 field 名稱。

</FORM>
<FORM name=form2 method=POST action=
"gateway-URL/http://abc.sesta.com/casestudy/html/form.html"><BR>

// 重新寫入此 URL 是因為已在預設規則集中將 <Attribute name="action"/> 定義為 HTML 規則的一部分。由於此 URL 應該是絕對 URL,因此僅需前置閘道 URL。

<input type=hidden name=name1 value="0|1234|../../html/test.html">

// 不重新寫入此 URL 是因為此表單名稱不符合規則中所指定的名稱。

</FORM>
</BODY>
RW_END
</HTML>

HTML Applet 範例

Procedure使用 Applet 範例

  1. 請取得 Applet 類別檔案。RewriteURLinApplet.class 檔案位於下列位置:

    portal-server-URL/rewriter/HTML/applet/appletcode

    出現 Applet 代碼之網頁的基準 URL 為:

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

  2. 將此範例中指定的規則新增至 [重新寫入 HTML 屬性的規則] 部分的 default_gateway_ruleset 中。

  3. 在 Portal Server 管理主控台的 Portal Server 配置下,編輯 Rewriter 服務中的 default_gateway_ruleset

  4. 重新啟動閘道:


    ./psadmin start-sra-instance –u amadmin – f  <password file> –N <profile name>– t  <gateway>
    

重新寫入前的 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=RewriteURLinApplet.class archive=/test>

// 重新寫入此 URL 是因為規則 <Attribute name="codebase"/> 已呈現為 default_gateway_ruleset 檔案的一部份。會前置閘道與 Portal Server URL 以及至 appletcode 目錄的路徑。

<param name=Test1 value=
"gateway-URL/portal-server-URL/index.html">

// 重新寫入此 URL 是因為此網頁的基準 URL 為 rule1.html,且參數名稱符合規則中指定的參數 Test*。由於已將 index.html 指定放置於根層級,因此將直接前置閘道與 Portal Server URL。

<param name=Test2 value="gateway-URL
/portal-server-URL/rewriter/HTML/index.html">

// 重新寫入此 URL 是因為此網頁的基準 URL 為 rule1.html,且參數名稱符合規則中指定的參數 Test*。將依需要前置路徑。

<param name=Test3 value="gateway-URL
/portal-server-URL/rewriter/index.html">

// 重新寫入此 URL 是因為此網頁的基準 URL 為 rule1.html,且參數名稱符合規則中指定的參數 Test*。將依需要前置路徑。

</APPLET>
Rewriting ends
</HTML>