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

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 配置下的重写器服务中的 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">

// 由于在 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。这与规则中指定的表单名和字段名相匹配。规则将 valuePatterns 规定为 0|1234| ,该值与本语句中的 value 相匹配。因此,会重写 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。

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

// 由于表单名不匹配规则中指定的名称,所以不会重写这个 URL。

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