이 절에서 다루는 내용은 다음과 같습니다.
다시 작성해야 하는 컨텐트를 가진 단순 HTML 페이지
컨텐트를 다시 작성할 때 필요한 규칙
해당 재작성된 HTML 페이지
이러한 예제 페이지는 portal-server-URL/rewriter 디렉토리에 있습니다. 규칙을 적용하기 전에 페이지를 둘러본 다음 게이트웨이를 통해 재작성된 결과 파일을 검토하여 규칙의 작용에 대해 알아봅니다. 규칙이 이미 default_gateway_ruleset의 일부인 경우도 있습니다. 어떤 예제에서는 default_gateway_ruleset에 규칙을 포함시켜야 할 수 있습니다. 해당 위치에서 이에 대해 언급합니다.
굵게 표시된 부분은 다시 작성된 내용입니다.
다음 예제를 이용할 수 있습니다.
HTML
JavaScript
함수
XML
XML 속성 예제
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/HTML/attrib/attribute.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com 및 host1.siroe.com이 정의되어 있어야 합니다.
정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에서 지정한 규칙은 이미 정의되어 있기 때문에 default_gateway_ruleset에 추가할 필요가 없습니다.
<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> 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>
<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 토큰 예제 사용에 대해 설명합니다.
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/HTML/jstokens/JStokens.html
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
터미널 창에서 게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> <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;">
// 이 샘플에서는 모든 명령문이 다시 작성됩니다. 각 경우에 게이트웨이 및 Portal Server URL이 접두어로 사용됩니다. 이것은 onAbort, onBlur, onFocus, onChange 및 onClick에 대한 규칙이 default_gateway_ruleset 파일에 정의되었기 때문입니다. Rewriter는 JavaScript 토큰을 검색한 다음 추가 처리를 할 수 있도록 JavaScript 함수 규칙으로 전달합니다. 샘플의 두 번째 규칙은 Rewriter에 다시 작성할 매개 변수를 알려줍니다.
</body> <br>
Rewriting ends
</html>
다음 위치에서 예제에 액세스합니다.
portal-server-URL/rewriter/HTML/forms/formrule.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에 지정된 규칙을 "HTML 속성 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
터미널 창에서 게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<!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> <HEAD> RW_START </HEAD> <BODY> <P> <FORM name=form1 method=POST action="gateway-URL/http://abc.sesta.com/casestudy/html/form.html">
<Attribute name="action"/>이 default_gateway_ruleset에서 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>
애플릿 클래스 파일을 얻습니다. RewriteURLinApplet.class 파일은 다음 위치에 있습니다.
portal-server-URL/rewriter/HTML/applet/appletcode
애플릿 코드가 있는 페이지의 기본 URL은 다음과 같습니다.
portal-server-URL/rewriter/HTML/applet/rule1.html
이 예제에 지정된 규칙을 "HTML 속성 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> Rewriting starts <BR> <APPLET codebase=gateway-URL/portal-server-URL /rewriter/HTML/applet/appletcode=RewriteURLinApplet.class archive=/test>
// <Attribute 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이 루트 수준에 있도록 지정되었기 때문에 게이트웨이 및 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>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/variables/url/js_urls.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
규칙을 추가한 경우 게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> 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.jpg"; 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 변수입니다. 따라서 게이트웨이 및 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">
// <Attribute name="src"/>라는 규칙이 default_gateway_ruleset에 정의되었기 때문에 이 행은 다시 작성됩니다.
<br> Image </body> <br> Rewriting ends </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/variables/expr/expr.html
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우).
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
규칙을 추가한 경우 게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>JavaScript EXPRESSION Variables Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //Expression variables 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> <head> <title>JavaScript EXPRESSION Variables Test Page</title> </head> <body> <SCRIPT> // Rewriter appends the wrapper function psSRAPRewriter_convert_expression here </SCRIPT> <script LANGUAGE="Javascript"> <!-- //Expression variables var expvar1="images"; var expvar2="/logo.gif"; var expvar =psSRAPRewriter_convert_expression( expvar1 + expvar2);
// Rewriter는 이 명령문의 오른쪽을 JavaScript EXPRESSION 변수인 것으로 인식합니다. Rewriter는 서버 쪽에서 이 표현식의 값을 결정할 수 없습니다. 따라서, psSRAPRewriter_convert_expression 함수가 표현식 앞에 덧붙습니다. 이 표현식은 클라이언트 쪽에서 평가되어 필요에 따라 다시 작성됩니다.
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 이전 구문에서 다시 작성된 expvar 값이 이 표현식의 값에 도달하기 위해 사용됩니다. 결과가 유효한 URL이기 때문에(그래픽이 샘플의 이 위치에) 링크가 제대로 작동합니다.
var expvar="gateway URL/portal-server-URL/images/logo"+".gif";
// Rewriter는 expvar의 오른쪽을 문자열 표현식으로 인식합니다. 이것은 서버 쪽에서 결정할 수 있기 때문에 직접 다시 작성됩니다.
document.write("<A HREF="+expvar+">EXPRESSION</A><P>")
// 이전 구문에서 다시 작성된 expvar 값이 이 표현식의 값에 도달하기 위해 사용됩니다. 결과가 유효한 URL이 아니기 때문에(샘플의 이 위치에 그래픽이 없음) 링크가 제대로 작동하지 않습니다.
//--> </SCRIPT> Testing JavaScript EXPRESSION variables </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/variables/dhtml/dhtml.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우). Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
규칙을 추가한 경우 게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> <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이 사용되어 최종적으로 다시 작성된 결과가 유도됩니다.
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"/>가 적용되며 명령문이 다음과 같이 다시 작성됩니다. Portal Server URL과 게이트웨이 URL이 접두어로 사용됩니다.
var dhtmlVar="<a href=gateway URL/portal-server-URL/ rewriter/JavaScript/variables/dhtml/images/test.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이 정의되어 있어야 합니다.
//--> </SCRIPT> <br><br> Testing DHTML Variables <br><br> <img src="gateway-URL/portal-server-URL/ rewriter/JavaScript/variables/dhtml/images/logo.gif">
// <Attribute name="src"/>라는 규칙이 default_gateway_ruleset에 정의되었기 때문에 이 행은 다시 작성됩니다.
<br><br> Image </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/variables/djs/djs.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에 지정된 두 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우). Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>Dynamic JavaScript Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- var dJSVar="var dJSimgsrc=\q/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\q../../../tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qhttp://abc.sesta.com/tmp/tmp/jpg\q;" //--> </SCRIPT> <br> Testing Dynamic JavaScript Variables <br> <img src="images/logo.gif"> <br> Image </body> </html>
<Variable name=”dJSVar” type="DJS"/> <Variable name="dJSimgsrc“ type=URL"/>
<html> <head> <title>Dynamic JavaScript Variable Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- var dJSVar="var dJSimgsrc=\qgateway-URL /portal-server-URL/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qgateway-URL /portal-server-URL/rewriter/tmp/tmp/jpg\q;" var dJSVar="var dJSimgsrc=\qgateway-URL /http://abc.sesta.com/tmp/tmp/jpg\q;"
// 위의 모든 구문은 게이트웨이 및 Portal Server URL로 다시 작성됩니다. 필요한 경로가 적합하게 앞에 덧붙여집니다. 첫 번째 규칙은 dJSVar의 오른쪽을 동적 JavaScript 변수로 인식합니다. 그런 다음 dJSimgsrc의 오른쪽을 URL 유형의 JavaScript 변수로 인식하는 두 번째 규칙으로 전달됩니다. 규칙에 따라 다시 작성됩니다.
//--> </SCRIPT> <br> Testing Dynamic JavaScript Variables <br> <img src="gateway-URL/portal-server-URL /rewriter/JavaScript/variables/djs/images/logo.gif">
// <Attribute name="src"/>라는 규칙이 default_gateway_ruleset에 정의되었기 때문에 이 행은 다시 작성됩니다.
<br> Image </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/variables/system/system.html
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우).
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> <title>JavaScript SYSTEM Variables Test Page</title> </head> <body> <script LANGUAGE="Javascript"> <!-- //SYSTEM Var 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> <head> <title>JavaScript SYSTEM Variables Test Page</title> </head> <body> <SCRIPT> convertsystem function definition... </SCRIPT> <script LANGUAGE="Javascript"> <!-- //SYSTEM Var alert(psSRAPRewriter_convert_system (window.location, window.location.pathname,”window.location”));
// Rewriter는 window.location.pathname을 JavaScript SYSTEM 변수로 인식합니다. 이 변수의 값은 서버 쪽에서 결정할 수 없습니다. 따라서 Rewriter는 변수 앞에 psSRAPRewriter_convert_pathname 함수를 덧붙입니다. 이 래퍼 함수는 클라이언트 쪽에서 변수의 값을 결정하고 필요에 따라 다시 작성합니다.
//--> </SCRIPT> Testing JavaScript SYSTEM Variables <br> This page displays the path where the current page is located when loaded. </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/functions/url/url.html
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우). Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> <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>
이 예제는 다음에서 액세스할 수 있습니다.
<portal-install-location>/SUNWportal/samples/rewriter
이 예제에 지정된 규칙을 JavaScript 소스 재작성을 위한 규칙 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우).
Portal Server 관리 콘솔을 사용하여 Rewriter 서비스의 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> <body> JavaScript EXPRESSION Function Test Page <br><br><br> <script> <!-- // various functions including psSRAPRewriter_ convert_expression appear here.//--> </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()));
// 규칙이 EXPRESSION 유형인 jstest1 함수의 첫 번째 매개 변수를 다시 써야 한다고 규정합니다. 이 표현식의 값은 /test/images/test.html입니다. 이 앞에 게이트웨이 및 Portal Server URL이 덧붙습니다.
document.write("<a HREF="+test1+">Test</a>"); alert(test1); //--> </SCRIPT> </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/functions/dhtml/dhtml.html
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우).
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> <head> Testing JavaScript DHTML Functions <br> <br> <script> <!-- document.write(\q<a href="/index.html">write</a><BR>\q) document.writeln(\q<a href="index.html">writeln</a><BR>\q) 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> <head> Testing JavaScript DHTML Functions <br> <br> <script> <!-- document.write(\q<a href="gateway-URL /portal-server-URL/index.html">write</a><BR>\q)
// 첫 번째 규칙은 DHTML JavaScript 함수 document.write의 첫 번째 매개 변수를 다시 작성해야 한다고 지정합니다. Rewriter는 첫 번째 매개 변수를 단순 HTML 명령문으로 파악합니다. default_gateway_ruleset의 HTML 규칙 부분에는 구문을 다시 써야 한다고 지시하는<Attribute name="href" /> 규칙이 있습니다.
document.writeln(\q<a href="gateway-URL /portal-server-URL/rewriter/JavaScript/functions/dhtml/index.html">writeln</a><BR>\q)
// 두 번째 규칙은 DHTML JavaScript 함수 document.writeln의 첫 번째 매개 변수를 다시 작성해야 한다고 지정합니다. Rewriter는 첫 번째 매개 변수를 단순 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이 아니기 때문입니다. 이것은 어떤 문자열도 될 수 있으며 Rewriter는 이를 다시 작성하는 방법을 알지 못합니다.
//--> </SCRIPT> </head> <body BGCOLOR=white> <br><br> Testing document.write and document.writeln </body> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/JavaScript/functions/djs/djs.html
게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우). Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<html> Test for JavaScript DJS Functions <br> <script> menu.addItem(new NavBarMenuItem("All Available Information","JavaScript:top.location=\qhttp://abc.sesta.com\q")); //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> Testing JavaScript DJS Functions <br> <script> menu.addItem(new NavBarMenuItem ("All Available Information","javaScript:top.location= \qgateway-URL/http://abc.sesta.com\q"));
// abc.sesta.com은 게이트웨이 서비스에서 [도메인 및 하위 도메인의 프록시] 목록에 있는 항목입니다. 따라서 Rewriter는 이 URL을 다시 작성해야 합니다. 그러나 이 값은 절대 URL이기 때문에 접두어로 Portal Server URL을 사용할 필요가 없습니다. DJS 규칙은 DJS 함수 NavBarMenuItem의 두 번째 매개 변수를 다시 작성해야 한다고 지정합니다. 하지만 두 번째 매개 변수 역시 JavaScript 변수입니다. 이 변수의 값을 다시 쓰기 위해 두 번째 규칙이 필요합니다. 두 번째 규칙은 JavaScript 변수 top.location의 값을 다시 써야 한다고 지정합니다. 모든 조건이 충족되면 URL이 다시 작성됩니다.
//menu.addItem(new NavBarMenuItem("All Available Information","http://abc.sesta.com"));
// DJS 규칙에서 함수 NavBarMenuItem의 두 번째 매개 변수를 다시 써야 한다고 지정하고 있지만 이 구문에서는 다시 쓰지 않습니다. Rewriter가 두 번째 매개 변수를 단순 HTML로 인식하지 않기 때문입니다.
</script> </html>
이 예제는 다음에서 액세스할 수 있습니다.
portal-server-URL /rewriter/XML/attrib.html
이 예제에 지정된 규칙을 "XML 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오(아직 없는 경우).
Portal Server 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 default_gateway_ruleset을 편집합니다.
게이트웨이를 다시 시작합니다.
./psadmin start-sra-instance –u amadmin – f <password file> –N <profile name>– t <gateway> |
<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> 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>