Sun Java logo     이전      목차      색인      다음     

Sun logo
Sun Java System Portal Server Secure Remote Access 6 2005Q1 관리 설명서 

3장
Proxylet 및 Rewriter

이 장에서는 Proxylet과 Rewriter에 대해 설명합니다. 이 구성 요소는 사용자가 게이트웨이를 통해 인트라넷 웹 페이지에 액세스할 수 있게 해 줍니다. 이 작업은 여러 가지 방법으로 수행합니다. Proxylet은 Rewriter처럼 웹 페이지를 구문 분석하지는 않습니다.

Rewriter에 대해서는 다음과 같은 주제를 다룹니다.


Proxylet 개요

Proxylet은 클라이언트 시스템에서 프록시 서버로 설정되는 Java 애플릿입니다. Proxylet은 클라이언트 시스템에 있는 PAC (Proxy Auto Config) 파일의 프록시 설정을 읽고 프록시 설정이 로컬 프록시 서버 또는 Proxylet을 가리키도록 수정합니다.

Proxylet은 게이트웨이에서 전송 모드를 상속합니다. 게이트웨이가 SSL에서 실행되도록 구성되어 있으면 Proxylet은 클라이언트 시스템과 게이트웨이 또는 대상 서버 사이에 보안 채널을 구성합니다. 암호화를 위해, 클라이언트 JVM이 1.4 이상이거나 필요한 jar 파일이 클라이언트 시스템에 상주하는 경우에는 Proxylet에서 JSSE API를 사용합니다. 그렇지 않으면 KSSL API를 사용합니다. 해독 작업은 클라이언트 컴퓨터에서 수행됩니다.

게이트웨이로 리디렉션되는 URL의 도메인 및 부속 도메인은 게이트웨이 프로필에서 지정됩니다. URL이 게이트웨이가 처리하는 도메인에 속하지 않으면 요청은 인터넷으로 지정됩니다.

Proxylet은 PDC (Personal Digital Certificate) 가 게이트웨이에서 활성화된 경우 클라이언트용 인증을 지원합니다. PDC가 활성화되었는지 확인하는 방법은 클라이언트 정보 가져오기를 참조하십시오.

Proxylet은 클라이언트 IP 주소 또는 프록시 호스트 이름과 포트를 지정한 Access Manager 관리 콘솔에서 활성화됩니다. Proxylet을 활성화하면 클라이언트 시스템에서 다음 사항이 확인됩니다.

요구 사항이 충족되면 클라이언트 시스템에서 작은 애플릿을 다운로드하여 시작합니다. 클라이언트에 JRE 1.3.1 이상이 없는 경우 인터넷에 연결되어 있고 관리자 권한이 있으면 Proxylet과 함께 JRE가 자동으로 다운로드됩니다.

Proxylet을 사용하고 있는 경우 프록시 자동 구성 (PAC) 파일에서 프록시 설정을 검색합니다.

Proxylet 사용의 이점

Rewriter와 달리 Proxylet은 설치 후에 조금만 변경하거나 변경하지 않아도 됩니다. Microsoft Exchange Server 등의 타사 소프트웨어와 쉽게 통합할 수 있습니다. 또한 Proxylet에서 웹 컨텐트를 다루지 않으면 게이트웨이의 성능이 향상됩니다. Proxylet에서 컨텐트를 수정하거나 데이터를 변경하지 않기 때문에, 사용자가 tar 및 gzip 파일과 같은 컨텐트 유형을 다운로드할 수 있습니다.

Proxylet 구성

Proxylet의 활성화와 구성에 관한 자세한 내용은 12장, "Proxylet 구성"을 참조하십시오.


참고     

사용자가 Proxylet을 실행할 수 있는 JVM (Java Virtual Machine) 을 가지고 있지 않으면 브라우저에서 sun.com 사이트에 연결하여 JRE (Java Runtime Environment) 를 다운로드합니다. 사용자의 브라우저 설정에 정확한 값이 포함되어 있지 않거나 사용자가 인터넷에 액세스하지 않고 직접 프록시 설정을 사용하는 경우 Proxylet을 다운로드할 수 없습니다.


HTTPS 지원

Proxylet은 HTTPS를 지원하며 다음 결과가 나타납니다.


Rewriter 개요

SRA의 Rewriter 구성 요소를 통해 최종 사용자가 게이트웨이를 가리키도록 웹 페이지의 URI (Uniform Resource Identifier) 를 수정하여 인트라넷을 찾아볼 수 있습니다. URI는 등록된 이름 공간에서 이름을 캡슐화하고 여기에 이름 공간으로 레이블을 설정하는 방법을 정의합니다. 가장 일반적인 URI 형태는 URL (Uniform Resource Locator) 입니다. Rewriter는 프로토콜이 대문자인지 여부와 관계없이 HTTP 또는 HTTPS만 지원합니다. Rewriter는 상대 URL의 일부인 경우에만 백슬래시를 지원합니다.

예:

http://abc.sesta.com/index.html은 다시 작성됩니다.

다음 URL은 다시 작성되지 않습니다.

http://abc.sesta.com.

http://abc.com


문자 집합 암호화

HTTP 표준에 따르면 HTTP 헤더 또는 HTML 메타 태그에서 웹 페이지에 사용할 문자 집합을 지정해야 합니다. 하지만 이 정보를 사용할 수 없는 경우도 있습니다. 데이터의 암호화를 설정하고 만든 사람의 의도에 맞게 데이터를 표시하려면 문자 집합을 알아야 합니다.

Sun Microsystems에서는 문자 집합 검색에 사용되는 타사 제품을 제공합니다. 이 제품을 사용하려면 Java™ Enterprise System Accessory CD에서 SUNWjchdt 패키지를 설치합니다. 제품이 설치되면 Rewriter에서 필요한 경우 이를 검색하여 사용합니다.


참고   

이 제품을 사용하면 성능이 저하될 수 있기 때문에 필요한 경우에만 설치해야 합니다. 설치, 구성 및 사용에 관한 자세한 내용은 jcharset_readme.txt를 참조하십시오.



Rewriter 사용 시나리오

사용자가 게이트웨이를 통해 인트라넷 웹 페이지에 액세스하려고 할 때 Rewriter가 웹 페이지를 사용할 수 있도록 해줍니다. 다음 구성 요소에서 Rewriter를 사용합니다.

URLScraper

URL Scraper 제공자는 구성된 URI에서 컨텐트를 가져와 브라우저로 보내기 전에 모든 상대 URI를 절대 URI로 확장합니다.

예를 들어, 사용자가 다음과 같은 컨텐트를 가진 사이트에 액세스하려고 하는 경우

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

Rewriter는 이것을 다음으로 변환합니다.

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

여기서 http://yahoo.com/test/는 페이지의 기본 URL입니다.

URLScraper 공급자에 대한 자세한 내용은 Portal Server 관리 설명서 를 참조하십시오.

게이트웨이

게이트웨이는 인터넷 포털에서 컨텐트를 가져와 이를 브라우저로 보내기 전에, 앞으로 브라우저에서 오는 URI 요청이 게이트웨이에 도달할 수 있도록 기존 URI에 게이트웨이 URI 접두어를 덧붙입니다.

예를 들어, 다음과 같은 컨텐트를 갖는 인터넷 컴퓨터의 HTML 페이지에 액세스하려고 하는 사용자에 대해.

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

Rewriter는 이 URL에 다음과 같이 게이트웨이에 대한 참조를 갖는 URL 이름을 접두어로 붙입니다.

<a href="https://gateway.company.com/http://mymachine.intranet.com/ mypage.html>"

사용자가 이 앵커와 관련된 링크를 누르면 브라우저가 게이트웨이에 접속합니다. 게이트웨이는 mymachine.intranet.com에서 mypage.html의 컨텐트를 가져옵니다.

게이트웨이는 가져온 웹 페이지에서 다시 작성할 요소를 결정하기 위해 몇 가지 규칙을 사용합니다.


규칙 집합 작성

[서비스 구성] 탭의 [Portal Server 구성] 부분에서 규칙 집합을 정의합니다.

규칙 집합에 대한 자세한 내용은 Portal Server 관리 설명서를 참조하십시오. 새 규칙 집합을 만든 후 필요한 규칙을 정의해야 합니다.

이 절에서는 다음 주제를 다룹니다.

공용 인터페이스 (규칙 집합 DTD)

다음은 RuleSet 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

이 절에는 예제 규칙 집합이 들어 있습니다. 사례 연구를 통해 Rewriter에서 이러한 규칙을 해석하는 방식을 살펴 볼 수 있습니다.

<?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="다음MonthImage" />

<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>

규칙 작성을 위한 절차

다음은 규칙을 작성할 때 따를 수 있는 일반적인 절차입니다.

규칙 집합 관련 지침

다음 사항에 주의하십시오.

규칙 집합의 루트 요소 정의

규칙 집합의 루트 요소에는 두 가지 속성이 있습니다.

재귀적 기능 사용

Rewriter에서는 재귀적 기능을 사용하여 대응되는 문자열 패턴의 끝까지에서 같은 패턴을 검색합니다.

예를 들어, Rewriter에서 다음 문자열을 구문 분석하는 경우:

<a href="src=abc.jpg,src=bcd.jpg,src=xyz.jpg>

규칙

<Attribute name="href" valuePatterns="*src=**"/>

은 처음 나타나는 패턴만을 다시 작성하며 그 결과는 다음과 같습니다.

<a href="src=http://jane.sun.com/abc.jpg>

하지만 재귀적 옵션을 사용하면

<Attribute name="href" valuePatterns="REC:*src=**"/>;

Rewriter는 대응되는 문자열 패턴에서 끝까지 같은 패턴을 찾기 때문에 다음과 같은 출력을 얻게 됩니다.

<a href="src=http://jane.sun.com/abc.jpg,src=http://jane.sun.com/bcd.jpg,src=http://jane.sun.com/xyz.jpg>


언어 기반 규칙 정의 (규칙 정의)

규칙은 다음 언어를 바탕으로 합니다.

HTML 컨텐트에 대한 규칙

웹 페이지의 HTML 컨텐트는 속성, 폼 및 애플릿으로 더욱 세분할 수 있습니다. 이에 따라 HTML 컨텐트에 대한 규칙은 다음과 같이 분류됩니다.

HTML 컨텐트에 대한 속성 규칙

이 규칙은 값을 다시 써야 하는 대상 태그의 속성을 확인합니다. 속성 값은 단순한 URL, JavaScript 또는 DHTML 컨텐트일 수 있습니다. 예:

이 절은 다음으로 세분됩니다.

속성 규칙 구문

<Attribute name="attributeName" [tag="*" valuePatterns="" source="*" type="URL|DHTML|DJS"]/>

여기서,

attributeName은 속성의 이름입니다 (필수).

tag는 속성이 속하는 태그입니다 (옵션, 기본값 *, 모든 태그를 의미).

valuePatterns는 규칙에 패턴 매칭 사용을 참조하십시오.

source는 이 속성이 정의되는 페이지의 URI를 지정합니다 (옵션, 기본값 *, 모든 페이지를 의미).

type은 값의 유형을 지정합니다 (옵션). 다음이 가능합니다.

속성 규칙 예제

페이지의 기본 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이 다음과 같다고 가정합니다.

http://abc.sesta.com/focus.html

페이지 컨텐트

<Form>

<input TYPE=TEXT SIZE=20 value=focus onClick="Check('/focus.html','focus');return;">

</Form>

규칙

<Attribute name="onClick" type="DJS"/>

<Function type="URL" name="Check" paramPatterns="y,"/>

결과

<Form>

<INPUT TYPE=TEXT SIZE=20 value=focus onClick="Check('gateway-URL/http://abc.sesta.com/focus.html','focus');return;">

</Form>

설명

지정된 페이지 컨텐트를 다시 쓰기 위해 두 가지 규칙이 필요합니다. 첫 번째 규칙은 onClick JavaScript 토큰을 확인합니다. 두 번째 규칙은 다시 작성되어야 하는 check 함수의 매개 변수를 확인합니다. 이 경우에는 paramPatterns가 첫 번째 매개 변수 자리에 y 값을 갖기 때문에 첫 번째 매개 변수만 다시 작성됩니다.

게이트웨이 URL과 JavaScript 토큰이 나타나는 페이지의 기본 URL이 필요한 매개 변수 앞에 덧붙여집니다.

HTML 컨텐트에 대한 폼 규칙

사용자가 찾아보는 HTML 페이지에는 폼이 있을 수 있습니다. 일부 폼 요소는 URL을 값으로 취할 수 있습니다.

이 절은 다음으로 세분됩니다.

폼 규칙 구문

<Form name="form1" field="visit" [valuePatterns="" source="*"]/>

여기서

name은 폼의 이름입니다 (필수).

field는 값을 다시 작성해야 하는 폼의 필드입니다 (필수).

valuePatterns 규칙에 패턴 매칭 사용을 참조하십시오.

source는 이 폼 정의가 있는 html 페이지의 URL입니다 (옵션, 기본값 *, 모든 페이지를 의미).

폼 규칙 예제

페이지의 기본 URL이 다음과 같다고 가정합니다.

http://test.siroe.com/testcases/html/form.html

페이지 컨텐트

페이지 URI가 form.html이고 서버의 루트 디렉토리에 있다고 가정합니다.

<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 컨텐트에 대한 애플릿 규칙

단일 웹 페이지에 많은 애플릿이 있을 수 있고 각 애플릿에는 많은 매개 변수가 있을 수 있습니다. Rewriter는 규칙에 지정된 값을 애플릿의 HTML 정의에 대응시키고 애플릿 매개 변수 정의의 일부로 존재하는 URL 값을 수정합니다. 이러한 교체는 사용자가 특정 웹 페이지를 찾아볼 때가 아니라 서버에서 이루어집니다. 이 규칙은 HTML 컨텐트의 개체 태그 및 애플릿 모두에서 매개 변수를 찾아 다시 작성합니다.

이 절은 다음으로 세분됩니다.

애플릿 규칙 구문

<Applet code="ApplicationClassName/ObjectID" param="parametername" [valuePatterns="" source="*"] />

여기서

code는 애플릿 또는 개체 클래스의 이름입니다 (필수).

param은 값을 다시 작성해야 하는 매개 변수의 이름입니다 (필수).

valuePatterns 규칙에 패턴 매칭 사용.

source는 애플릿 정의가 있는 페이지의 URL입니다 (옵션, 기본값 *, 모든 페이지를 의미).

애플릿 규칙 예제

페이지의 기본 URL이 다음과 같다고 가정합니다.

http://abc.siroe.com/casestudy/test/HTML/applet/rule1.html

페이지 컨텐트

<applet codebase="appletcode" code="RewriteURLinApplet.class" archive="/test.jar">

<param name=Test1 value="/index.html">

</applet>

규칙

<Applet source="*/rule1.html" code="RewriteURLin*.class" param="Test*"/>

결과

<APPLET codebase="gateway-URL/http://abc.siroe.com/casestudy/test/HTML/applet/appletcode" code="RewriteURLinApplet.class" archive="/test.jar">

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

</APPLET>

설명

<Attribute name="codebase"/>가 default_gateway_ruleset에서 정의된 규칙이므로 codebase 속성은 다시 작성됩니다.

이름이 Test로 시작되는 모든 매개 변수는 다시 작성됩니다. 애플릿 코드가 표시되는 페이지의 기본 URL과 게이트웨이 URL이 값 param 태그의 value 속성에 접두어로 사용됩니다.

규칙에 패턴 매칭 사용

valuePatterns 필드를 사용하여 패턴 매칭을 수행하고 다시 써야 하는 구문의 특정 부분을 확인할 수 있습니다.

규칙의 일부로 valuePatterns를 지정했다면 매칭된 패턴 이후의 모든 컨텐트는 다시 작성됩니다.

아래 예제 폼 규칙을 생각해 보겠습니다.

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

여기서

source는 폼이 표시되는 html 페이지의 URL입니다.

name은 폼의 이름입니다.

field는 값을 다시 써야 하는 폼의 필드입니다.

valuePatterns는 다시 써야 하는 문자열 부분을 나타냅니다. valuePatterns 뒤에 나타나는 모든 컨텐트는 다시 작성됩니다 (옵션, 기본값 ""는 전체 값을 다시 써야 함을 나타냄).

valuePatterns에 특수 문자 지정

특수 문자는 백슬래시로 이스케이프하면 지정할 수 있습니다. 예:

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

valuePatterns에서 와일드카드 사용

* 문자를 사용하여 다시 쓰기를 위한 패턴 매칭을 수행할 수 있습니다.

valuePatterns 필드에 단순히 *만 지정할 수는 없습니다. *는 모든 요소와의 대응을 나타내기 때문에 valuePattern 뒤에 아무 것도 없으며 따라서 Rewriter가 다시 작성할 것이 없습니다. *를 *abc와 같이 또 다른 문자열과 연결하여 사용할 수 있습니다. 이 경우에 *abc 이후의 모든 컨텐트가 다시 작성됩니다.


참고   

별표 (*) 는 규칙의 어떤 필드에서나 와일드카드로 사용할 수 있습니다. 그러나 규칙의 모든 필드에 *를 포함시킬 수는 없습니다. 모든 필드에 *가 있으면 규칙이 무시됩니다. 오류 메시지는 표시되지 않습니다.


원본 명령문에서 여러 필드를 구별하기 위해 표시되는 구분 문자 (세미콜론 또는 쉼표) 와 함께 * 또는 **를 사용할 수 있습니다. 하나의 와일드카드 (*)는 다시 작성되지 않을 모든 필드와 매칭되며 두 개의 와일드카드 (**) 는 다시 작성해야 하는 모든 필드와 매칭됩니다.

표 3-1에 * 와일드카드 사용의 몇 가지 실례를 나타내었습니다.

표 3-1  * 와일드카드 사용의 실례 

URL

valuePatterns

설명

url1, url2, url3, url4

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

이 경우에 **가 다시 작성해야 하는 부분을 나타내기 때문에 url1 및 url3이 다시 작성됩니다.

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

valuePatterns = "*ABC"

이 경우에 http://host1.sesta.com/dir1.html 부분만 다시 작성됩니다. *ABC 이후 모든 부분을 다시 작성해야 합니다.

"0|dir1|dir2|dir3|dir4|test|url1

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

이 경우에 dir2, dir4 및 url1이 다시 작성됩니다. 다시 작성해야 하는 마지막 필드는 **를 사용하여 나타내지 않아도 됩니다.

JavaScript 컨텐트에 대한 규칙

JavaScript에는 다양한 위치에 URL이 있을 수 있습니다. Rewriter는 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이 다음과 같다고 가정합니다.

http://abc.siroe.com/tmp/page.html

페이지 컨텐트

<script LANGUAGE="Javascript">

<!--

//URL Variables

var imgsrc1="/tmp/tmp.jpg";

var imgsrc2="http://srap.sesta.com/tmp/tmp.jpg";

var imgsrc3=imgsrc2;

//-->

</SCRIPT>

규칙

<Variable name="imgsrc*" type="URL"/>

결과

<script LANGUAGE="Javascript">

<!--

//URL Variables

var imgsrc="gateway-URL/http://abc.siroe.com/tmp/tmp.jpg";

var imgsrc="gateway-URL/http://srap.sesta.com/tmp/tmp.jpg";

var imgsrc2=imgsrc1;

//-->

</SCRIPT>

설명

유형이 URL이고 이름이 imgsrc로 시작되는 모든 변수가 다시 작성됩니다. 결과의 첫 라인에서 게이트웨이 URL과 변수가 표시되는 페이지의 기본 URL이 앞에 덧붙습니다. 두 번째 라인에는 이미 절대 경로가 있기 때문에 게이트웨이 URL만 덧붙습니다. 세 번째 var imagsrc2는 그 값이 문자열이 아니라 다른 JavaScript 값이기 때문에 다시 작성되지 않습니다.

EXPRESSION 변수

Expression 변수에는 오른쪽에 표현식이 있습니다. 이 표현식의 결과는 URL입니다. Rewriter는 서버에서 이러한 표현식을 평가할 수 없기 때문에 HTML 페이지에 JavaScript 함수 (psSRAPRewriter_convert_expression)를 추가합니다. 이 함수는 표현식을 하나의 매개 변수로 받아들여 클라이언트 브라우저에서 필요한 URL로 평가합니다.

명령문에 단순 URL이 있는지 EXPRESSION URL이 있는지 잘 모르는 경우에는 두 시나리오를 모두 처리할 수 있는 EXPRESSION 규칙을 사용하십시오.

이 절은 다음으로 세분됩니다.

EXPRESSION 변수 구문

<Variable name="variableName" [type="EXPRESSION" source=”*”]/>

여기서

variableName은 그 값이 표현식인 JavaScript 변수의 이름입니다 (필수).

type은 JavaScript 변수의 유형입니다 (옵션, 기본값은 EXPRESSION).

source는 페이지의 URI입니다 (옵션, 기본값 *, 모든 소스를 의미).

EXPRESSION 변수 예제

페이지의 기본 URL이 다음과 같다고 가정합니다.

http://abc.siroe.com/dir1/dir2/page.html

페이지 컨텐트

<script LANGUAGE="Javascript">

<!--

//Expression variables

var expvar= getURIPreFix() + "../../images/graphics"+".gif";

document.write("<A HREF="+expvar+">Link to XYZ content</A><P>")

var expvar="../../images/graphics"+".gif";

//-->

</SCRIPT>

규칙

<Variable name=”expvar” type="EXPRESSION"/>

또는

<Variable name=”expvar”/>

결과

var expvar=psSRAPRewriter_convert_expression(getURIPreFix() + "../../images/graphics"+".gif");

document.write("<a href="+expvar+">>Link to XYZ content</A><P>")

var expvar="gateway-URL/http://abc.siroe.com/images/graphics"+".gif";

설명

첫 번째 줄에서 함수 psSRAPRewriter_convert_expression이 expvar 표현식 변수의 오른쪽에 덧붙여집니다. 이 함수는 표현식을 처리하고 런타임에 컨텐트를 다시 작성합니다. 세 번째 라인에서 값이 단순 URL로 다시 작성됩니다.

DHTML (Dynamic HTML) 변수

이것은 HTML 컨텐트를 포함한 JavaScript 변수입니다.

이 절은 다음으로 세분됩니다.

DHTML 구문

<Variable name=”variableName” type="DHTML" [source=”*”]/>

여기서

variableName은 DHTML 컨텐트가 있는 JavaScript 변수의 이름입니다 (필수).

type은 변수의 유형입니다 (필수, 이 값은 DHTML이어야 함).

source는 페이지의 URL입니다 (옵션, 기본값은 *, 모든 페이지를 의미).

DHTML 예제

페이지의 기본 URL이 다음과 같다고 가정합니다.

http://abc.sesta.com/graphics/set1/graphics/jsscript/JSVAR/page.html

페이지 컨텐트

<script LANGUAGE="Javascript">

<!--

//DHTML Var

var dhtmlVar="<a href=../../images/test.html>"

var dhtmlVar="<a href=/images/test.html>"

var dhtmlVar="<a href=images/test.html>"

//-->

</SCRIPT>

규칙

<Variable name=”dhtmlVar” type="DHTML"/>

<Attribute name="href" />

또는

<Attribute name="href" tag="a"/>

결과

<script LANGUAGE="Javascript">

<!--

//DHTML Var

var dhtmlVar="<a href=gateway-URL/http://abc.sesta.com/graphics/set1/graphics/images/test.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 구문 분석기가 href 속성 규칙이 대응된 HTML 규칙을 적용하기 때문에 URL이 다시 작성됩니다.

DJS (Dynamic JavaScript) 변수

이것은 JavaScript 컨텐트를 포함한 JavaScript 변수입니다.

이 절은 다음으로 세분됩니다.

DJS 구문

<Variable name="variableName" type="DJS" [source=”*”]/>

여기서

variable은 그 값이 javascript인 JavaScript 변수입니다.

DJS 예제

페이지의 기본 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';"

설명

여기에 두 가지 규칙이 필요합니다. 첫 번째 규칙은 동적 JavaScript 변수 dJSVar를 찾습니다. 이 변수의 값은 다시 URL 유형의 JavaScript입니다. 이 JavaScript 변수의 값을 다시 쓰기 위해 두 번째 규칙이 적용됩니다.

SYSTEM 변수

사용자가 사용하지 못하도록 선언되어 있어 지원이 제한되는 변수입니다. 이 변수들은 JavaScript 표준의 일부로 사용할 수 있습니다. 예: window.location.pathname.

이 절은 다음으로 세분됩니다.

SYSTEM 변수 구문

<Variable name=”variableName” type="SYSTEM" [source=”*”]/>

여기서

variableName은 JavaScript 시스템 변수 (필수) 이며 그 값은 document.URL, document.domain, location, doument.location, location.pathname, location.href, location.protocol, location.hostname, location.host 및 location.port 패턴과 매칭되는 값이 될 수 있습니다. 이러한 값은 generic_ruleset에 있습니다. 이러한 시스템 변수 규칙을 수정하지 마십시오.

type은 시스템 유형 값을 지정합니다 (필수이며 값은 DJS).

source는 이 페이지의 URI입니다 (옵션, 기본값은 *, 모든 페이지를 의미).

SYSTEM 변수 예제

페이지의 기본 URL이 다음과 같다고 가정합니다.

http://abc.siroe.com/dir1/page.html

페이지 컨텐트

<script LANGUAGE="Javascript">

<!--

//SYSTEM Var

alert(window.location.pathname);

//-->

</SCRIPT>

규칙

<Variable name=”window.location.pathname” type="SYSTEM"/>

결과

</SCRIPT>

<SCRIPT LANGUAGE="Javascript">

<!--

//SYSTEM Var

alert(psSRAPRewriter_convert_pathname(window.location.pathname));

//-->

</SCRIPT>

설명

Rewriter가 규칙에 대응되는 시스템 변수를 찾으면 psSRAPRewriter_convert_system 함수가 접두어로 사용됩니다. 이 함수는 런타임 시 시스템 변수를 처리하고 그에 따라 얻어지는 URL을 다시 씁니다.

함수의 인수

그 값을 다시 작성해야 하는 함수 매개 변수는 4가지 범주로 분류됩니다.

일반 구문

<Function name="functionName" paramPatterns="y,y," [type="URL|EXPRESSION|DHTML|DJS" source=”*”]/>

여기서

name은 JavaScript 함수의 이름입니다 (필수).

paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다 (필수).

y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 예를 들어 구문에서 첫 번째 매개 변수는 다시 써야 하지만 두 번째 매개 변수는 다시 쓰지 않아야 합니다.

type은 이 매개 변수에 필요한 값의 종류를 지정합니다 (옵션, 기본값은 EXPRESSION 유형).

source 페이지 소스 URI (옵션, 기본값은 *, 모든 페이지를 의미).

URL 매개 변수

함수는 이 매개 변수를 문자열로 취하며 이 문자열은 URL로 취급할 수 있습니다.

이 절은 다음으로 세분됩니다.

URL 매개 변수 구문

<Function name="functionName" paramPatterns="y,," type="URL" [source=”*”]/>

여기서

name은 URL 유형의 매개 변수를 갖는 함수 이름입니다 (필수).

paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다 (필수).

y의 위치는 다시 작성해야 하는 매개 변수를 나타냅니다. 예를 들어 구문에서 첫 번째 매개 변수는 다시 써야 하지만 두 번째 매개 변수는 다시 쓰지 않아야 합니다.

type은 함수의 유형입니다 (필수, 이 값은 URL이어야 함).

source는 이 함수 호출을 갖는 페이지의 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=500,height=500);

//-->

</SCRIPT>

설명

첫 번째 규칙은 test 이름의 함수에 있는 처음 두 매개 변수를 다시 작성해야 한다고 지정합니다. 따라서 test 함수의 처음 두 매개 변수는 다시 작성됩니다. 두 번째 규칙은 window.open 함수의 처음 매개 변수를 다시 작성해야 한다고 지정합니다. window.open 함수 내의 URL에는 이 함수 매개 변수를 포함한 페이지의 기본 URL과 게이트웨이 URL이 앞에 덧붙여집니다.

EXPRESSION 매개 변수

이 매개 변수는 표현식 값을 취하며 평가 결과는 URL이 됩니다.

이 절은 다음으로 세분됩니다.

EXPRESSION 매개 변수 구문

<Function name="functionName" paramPatterns="y" [type="EXPRESSION" source=”*”]/>

여기서

name은 함수의 이름입니다 (필수).

paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다 (필수).

y의 위치는 다시 작성해야 하는 함수 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.

type은 값 EXPRESSION을 지정합니다 (옵션).

source는 이 함수가 호출되는 페이지의 URI입니다.

EXPRESSION 매개 변수 예제

페이지의 기본 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>

설명

이 규칙은 jstest1 함수의 첫 번째 매개 변수를 EXPRESSION 함수 매개 변수로 취급하여 다시 써야 한다는 것을 지정합니다. 예제 페이지 컨텐트에서 첫 번째 매개 변수는 런타임 때만 평가되는 표현식입니다. Rewriter는 이 표현식의 접두어로 psSRAPRewriter_convert_expression 함수를 사용합니다. 이 표현식이 평가되고 psSRAPRewriter_convert_expression 함수가 런타임 때 결과를 다시 씁니다.


참고   

위의 예제에서 JavaScript 변수 규칙의 일부로 test1이 있을 필요는 없습니다. jstest1에 대한 함수 규칙이 다시 쓰기를 처리합니다.


DHTML 매개 변수

그 값이 HTML인 함수 매개 변수입니다.

HTML 페이지를 동적으로 생성하는 document.write() 같은 원시 JavaScript 메서드가 이 범주에 속합니다.

이 절은 다음으로 세분됩니다.

DHTML 매개 변수 구문

<Function name="functionName" paramPatterns="y" type="DHTML" [source=”*”]/>

여기서

name은 함수의 이름입니다.

paramPatterns는 다시 작성해야 하는 매개 변수를 지정합니다 (필수).

y의 위치는 다시 작성해야 하는 함수 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.

DHTML 매개 변수 예제

페이지의 기본 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/JSFUNC/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 함수의 첫 매개 변수를 다시 작성해야 한다고 지정합니다. 두 번째 규칙은 document.writeln 함수의 첫 매개 변수를 다시 작성해야 한다고 지정합니다. 세 번째 규칙은 href 이름의 모든 속성을 다시 작성해야 한다고 지정하는 단순 HTML 규칙입니다. 이 예에서, DHTML 매개 변수 규칙이 함수에서 다시 작성해야 하는 매개 변수를 확인합니다. 그런 다음 HTML 속성 규칙이 적용되어 실제로 확인된 매개 변수가 다시 작성됩니다.

DJS 매개 변수

그 값이 JavaScript인 함수 매개 변수입니다.

이 절은 다음으로 세분됩니다.

DJS 매개 변수 구문

<Function name="functionName" paramPatterns="y" type="DJS" [source=”*”]/>

여기서

name은 하나의 매개 변수가 DJS인 함수의 이름입니다 (필수).

paramPatterns는 위 함수에서 어떤 매개 변수가 DJS인지를 지정합니다 (필수).

y의 위치는 다시 작성해야 하는 함수 매개 변수를 나타냅니다. 위의 구문에서 첫 번째 매개 변수만 다시 작성됩니다.

type은 DJS입니다 (필수).

source는 페이지의 URI입니다 (옵션, 기본값은 *, 모든 URI를 의미).

DJS 매개 변수 예제

페이지의 기본 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 함수의 두 번째 매개 변수를 다시 작성해야 한다고 지정합니다. JavaScript 내에서, top.location 변수도 다시 작성해야 합니다. 이 변수는 두 번째 규칙을 사용하여 다시 작성됩니다.

XML 컨텐트에 대한 규칙

웹 페이지에 XML 컨텐트가 있을 수 있으며 여기에는 다시 URL이 있을 수 있습니다. 다시 작성해야 하는 XML 컨텐트는 두 범주로 구분됩니다.

태그 텍스트

이 규칙은 태그 요소의 PCDATA 또는 CDATA를 다시 작성하기 위한 것입니다.

이 절은 다음으로 세분됩니다.

태그 텍스트 구문

<TagText tag="tagName" [attributePatterns=”attribute_patterns_for_ this_tag" source=”*”]/>

여기서

tagName은 태그의 이름입니다.

attributePatterns는 이 태그에 대한 속성 및 그 값의 패턴입니다 (옵션, 이 태그에 속성이 전혀 없다는 것을 의미).

source는 이 xml 파일의 URI입니다 (옵션, 기본값은 *, 모든 xml 페이지를 의미).

태그 텍스트 예제

페이지의 기본 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/test.html</attribute>

<attribute>abc.html</attribute>

</xml>

설명

페이지 컨텐트의 첫 번째 행에는 속성 예제가 있습니다. 페이지 컨텐트의 두 번째 행에 name이라는 속성이 없는데 name 속성의 값이 src여야 하기 때문에 다시 작성하는 작업은 수행되지 않습니다. 이것도 다시 작성하려면 <TagText tag="attribute"/>가 있어야 합니다.

속성

XML 속성의 규칙은 HTML에 대한 속성 규칙과 유사합니다. 자세한 내용은 118페이지의 "HTML 컨텐트에 대한 속성 규칙"을 참조하십시오. XML의 속성 규칙이 대소문자를 구분하는 반면 HTML 속성은 그렇지 않다는 차이점이 있습니다. 이는 근본적으로 HTML에는 없지만 XML에는 있는 대소문자 구분 특성 때문입니다.

Rewriter는 속성 이름을 바탕으로 속성 값을 변환합니다.

이 절은 다음으로 세분됩니다.

속성 구문

<Attribute name="attributeName" [tag="*" type=”URL” valuePatterns="*" source=”*”]/>

여기서

attributeName은 속성의 이름입니다 (필수).

tag는 이 속성이 있는 태그의 이름입니다 (옵션, 기본값은 *, 모든 태그를 의미).

valuePatterns는 규칙에 패턴 매칭 사용을 참조하십시오.

source는 이 XML 페이지의 URI입니다 (옵션, 기본값은 *, 모든 XML 페이지를 의미).

속성 예제

페이지의 기본 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/string.html"/>

</xml>

설명

위의 예에서 네 번째 라인만 규칙에 지정된 모든 조건을 만족하기 때문에 이 라인만 다시 작성됩니다. 자세한 내용은 규칙에 패턴 매칭 사용을 참조하십시오.

CCS (Cascading Style Sheet)에 대한 규칙

HTML 페이지에서 CCS (CCS2 포함)가 변환됩니다. URL이 CSS의 가져오기 구문과 url() 함수에만 있기 때문에 이 변환에 대해 정의된 규칙은 없습니다.

WML에 대한 규칙

WML은 HTML과 유사하므로 WML 컨텐트에 HTML 규칙이 적용됩니다. WML 컨텐트에 대한 일반 규칙 집합을 사용하십시오. 자세한 내용은 HTML 컨텐트에 대한 규칙을 참조하십시오.

재귀적 기능 사용

Rewriter에서는 재귀적 기능을 사용하여 대응되는 문자열 패턴의 끝까지에서 같은 패턴을 검색합니다.

예를 들어, Rewriter에서 다음 문자열을 구문 분석하는 경우:

<a href="src=abc.jpg,src=bcd.jpg,src=xyz.jpg>

규칙

<Attribute name="href" valuePatterns="*src=**"/>

은 처음 나타나는 패턴만을 다시 작성하며 그 결과는 다음과 같습니다.

<a href="src=http://jane.sun.com/abc.jpg>

하지만 재귀적 옵션을 사용하면

<Attribute name="href" valuePatterns="REC:*src=**"/>;

Rewriter는 대응되는 문자열 패턴에서 끝까지 같은 패턴을 찾기 때문에 다음과 같은 출력을 얻게 됩니다.

<a href="src=http://jane.sun.com/abc.jpg,src=http://jane.sun.com/bcd.jpg,src=http://jane.sun.com/xyz.jpg>


게이트웨이 서비스에서 Rewriter 구성

[Rewriter] 탭 아래에서 게이트웨이 서비스를 사용하여 기본 및 고급의 두 범주 내에서 다음 작업을 수행할 수 있습니다.

기본 작업

모든 URL 다시 쓰기 사용

게이트웨이 서비스에서 [모든 URL 다시 쓰기 사용] 옵션을 설정하면 [도메인 및 부속 도메인의 프록시] 목록에 있는 항목을 확인하지 않고 Rewriter가 모든 URL을 다시 씁니다. [도메인 및 부속 도메인의 프록시] 목록에 있는 항목은 무시됩니다.

    게이트웨이가 모든 URL을 다시 쓰도록 하려면
  1. Sun Java System Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭을 누릅니다.
  8. [모든 URL 다시 쓰기 사용] 확인란을 선택하여 게이트웨이가 모든 URL을 다시 쓸 수 있게 합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

RuleSet과 URI의 매핑 목록 만들기

규칙 집합은 Access Manager 관리 콘솔의 Portal Server 구성 아래에 있는 Rewriter 서비스에 만들어집니다. 자세한 내용은 Portal Server 관리 설명서를 참조하십시오.

규칙 집합을 만든 후 [규칙 집합에 URI 매핑] 필드를 사용하여 도메인을 규칙 집합과 연관시킵니다. 기본적으로 다음 두 항목이 [규칙 집합에 URI 매핑] 필드에 추가됩니다.

즉, 도메인 sun.com을 가진 포털 디렉토리의 모든 페이지에 default_gateway_ruleset이 적용됩니다. 기타 모든 페이지에는 일반 규칙 집합이 적용됩니다. default_gateway_ruleset 및 generic_ruleset은 사전 구성된 규칙 집합입니다.


참고   

표준 포털 데스크탑에 나타나는 모든 컨텐트에 대해 컨텐트를 가져온 위치에 관계 없이 default_gateway_ruleset의 규칙 집합이 사용됩니다.

예를 들어, 표준 포털 데스크탑이 URL yahoo.com에서 컨텐트를 스크랩하도록 구성되었다고 가정합시다. Portal Server는 sesta.com에 있습니다. sesta.com에 대한 규칙 집합이 불려온 컨텐트에 적용됩니다.



참고   

규칙 집합을 지정하는 도메인은 [도메인 및 부속 도메인의 프록시] 목록에 있어야 합니다.


구문 내에서 와일드카드 사용

규칙 집합에서 별표를 사용하여 정규 URI 또는 부분적 URI를 매핑할 수 있습니다.

예를 들어, 다음과 같이 java_index_page_ruleset을 index.html 페이지에 적용할 수 있습니다.

또는 다음과 같이 java 디렉토리에 있는 모든 페이지를 java_directory_ruleset에 적용할 수 있습니다.

www.sun.com/java/* /java_directory_ruleset

    URI를 규칙 집합에 매핑하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭을 누릅니다.
  8. [규칙 집합에 URI 매핑] 필드로 스크롤합니다.
  9. 필요한 도메인이나 호스트 이름 그리고 규칙 집합을 [규칙 집합에 URI 매핑] 필드에 입력하고 [추가]를 누릅니다.
  10. 항목이 [규칙 집합에 URI 매핑] 필드에 추가됩니다.

    도메인이나 호스트 이름 그리고 규칙 집합을 지정하는 형식은 다음과 같습니다.

    domain name|ruleset name

    예:

    eng.sesta.com|default

구문 분석할 MIME 유형 목록 만들기

Rewriter에는 컨텐트 유형 (HTML, JAVASCRIPT, CSS 및 XML) 에 따라 웹 페이지의 구문 분석에 사용되는 4가지 구문 분석기가 있습니다. 기본적으로 공통 MIME 유형이 이러한 구문 분석기와 연결되어 있습니다. 게이트웨이 서비스의 [구문 분석기를 MIME 유형에 매핑] 필드에서 새로운 MIME 유형을 이러한 구문 분석기와 연관시킬 수 있습니다. 그러면 Rewriter의 기능이 다른 MIME 유형까지 확장됩니다.

여러 항목을 입력할 때에는 세미콜론이나 쉼표로 구분합니다 (";" 또는 ","). 예:

HTML=text/html;text/htm;text/x-component;text/wml; text/vnl/wap.wml

이것은 이러한 MIME을 가진 모든 컨텐트가 HTML Rewriter로 보내지고 URL을 다시 쓰도록 HTML 규칙이 적용된다는 의미입니다.


팁

MIME 매핑에서 불필요한 구문 분석기를 제거하면 작동 속도를 높일 수 있습니다. 예를 들어, 특정 인트라넷의 컨텐트에 JavaScript가 없다는 것이 확실하면 MIME 매핑 목록에서 JAVASCRIPT 항목을 제거할 수 있습니다.


    MIME 매핑 지정
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭을 누릅니다.
  8. [구문 분석기를 MIME 유형에 매핑] 필드로 스크롤하여 편집 상자에 필요한 MIME 유형을 추가합니다. 여러 항목을 구분할 때에는 세미콜론이나 쉼표를 사용합니다.
  9. 항목을 HTML=text/html;text/htm 형식으로 지정합니다.

  10. [추가]를 눌러 목록에 필요한 항목을 추가합니다.
  11. [저장]을 눌러 변경 사항을 기록합니다.
  12. 터미널 창에서 게이트웨이를 다시 시작합니다.
  13. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

다시 쓰지 않을 URI 목록 만들기

이 규칙은 http://host.domain.com과 같은 URL이 페이지에 표시되면 다시 URL을 쓰지 않음을 의미합니다. 그러나 다른 URL이 포함되어 있으면 페이지를 다시 씁니다. URL이 http://host.domain.com인 페이지를 원하지 않는 경우 http://host.domain.com"|null_ruleset과 같이 규칙 집합 매핑을 추가합니다 .

    다시 쓰지 않을 URI를 지정하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [기본] 부분을 누릅니다.
  8. [다시 쓰지 않을 URI] 필드로 스크롤하여 편집 상자에 URI를 추가합니다.
  9. 참고: 이 목록에 #*를 추가하면 href 규칙이 규칙 집합의 일부라 하더라도 URI를 다시 쓸 수 있습니다.

  10. [저장]을 눌러 변경 사항을 기록합니다.
  11. 터미널 창에서 게이트웨이를 다시 시작합니다.
  12. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

기본 도메인 지정

기본 도메인 및 부속 도메인은 URL에 도메인과 부속 도메인 없이 호스트 이름만 있을 때 유용합니다. 이 경우에 게이트웨이는 호스트 이름이 기본 도메인 및 부속 도메인에 있다고 가정하고 그에 따라 진행합니다.

예를 들어, URL의 호스트 이름이 host1이고 기본 도메인과 부속 도메인이 red.sesta.com으로 지정된 경우, 호스트 이름은 host1.red.sesta.com으로 확인됩니다.

    기본 도메인을 지정하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 누릅니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 오른쪽 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭을 누릅니다.
  8. [기본 도메인] 필드로 스크롤하여 subdomain.domain name 형식으로 필요한 기본값을 입력합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

고급 작업

MIME 추측 사용

Rewriter는 페이지의 MIME 유형에 따라 구문 분석기를 선택합니다. WebLogic 및 Oracle같은 일부 웹 서버는 MIME 유형을 보내지 않습니다. 이 문제를 해결하려면 [구문 분석기와 URI의 매핑] 목록 상자에 데이터를 추가하여 MIME 추측 기능을 활성화합니다.

    MIME 추측을 사용하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [고급] 부분을 누릅니다.
  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, htm 또는 Servlet 확장을 가진 모든 페이지에 대한 컨텐트를 다시 쓰기 위해 HTML Rewriter가 사용된다는 것을 의미합니다.

    URI 매핑을 구문 분석하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [고급] 부분을 누릅니다.
  8. [구문 분석기를 MIME 유형에 매핑] 필드로 스크롤하여 편집 상자에 데이터를 추가합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

마스크 활성화

마스크를 사용하면 Rewriter에서 페이지의 인트라넷 URL이 보이지 않도록 URI를 다시 쓸 수 있습니다.

    마스크를 활성화하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [고급] 부분을 누릅니다.
  8. [마스크 사용] 확인란을 선택하여 마스크를 활성화합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

마스크 씨드 문자열 지정

씨드 문자열은 URI의 마스크에 사용됩니다. 씨드 문자열은 마스크 알고리즘에 의해 생성되는 임의 문자열입니다.


참고   

이 씨드 문자열을 변경하거나 게이트웨이를 다시 시작한 경우에는 마스크된 URI의 책갈피가 제대로 작동하지 않을 수 있습니다.


    마스크 씨드 문자열을 지정하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [고급] 부분을 누릅니다.
  8. [마스크 씨드 문자열] 필드로 스크롤하고 편집 상자에 문자열을 추가합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

마스크하지 않을 URI 목록 만들기

일부 응용 프로그램 (애플릿 등)은 인터넷 URI가 필요하기 때문에 마스크할 수 없습니다. 이러한 응용 프로그램을 지정하려면 URI를 목록 상자에 추가합니다.

예를 들어 다음을 목록 상자에 추가하면

*/Applet/Param*

컨텐트 URI http://abc.com/Applet/Param1.html이 규칙 집합의 규칙에서 매칭되는 경우 URL이 마스크되지 않습니다.

    마스크하지 않을 URI 목록을 지정하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭의 [고급] 부분을 누릅니다.
  8. [마스크하지 않을 URI] 필드로 스크롤하여 편집 상자에 URI를 추가합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start

게이트웨이 프로토콜을 원본 URI 프로토콜과 같게 표시하기

게이트웨이가 HTTP와 HTTPS 모드 모두에서 실행되는 경우 Rewriter가 일관된 프로토콜을 사용하여 HTML 컨텐트의 참조 자원에 액세스하게 할 수 있습니다.

예를 들어 원본 URL이 http://intranet.com/Public.html이라면 HTTP 게이트웨이가 추가됩니다. 원본 URL이 https://intranet.com/Public.html이라면 HTTPS 게이트웨이가 추가됩니다.


참고   

이는 Javascript로 생성된 동적 URI가 아닌 정적 URI에만 적용됩니다.


    게이트웨이 프로토콜을 원본 URI 프로토콜과 같게 하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [Rewriter] 탭 아래의 [고급] 부분을 누릅니다.
  8. [게이트웨이 프로토콜을 원본 URI 프로토콜과 같게 표시] 확인란을 선택합니다.
  9. [저장]을 눌러 변경 사항을 기록합니다.
  10. 터미널 창에서 게이트웨이를 다시 시작합니다.
  11. gateway-install-root/SUNWps/bin/gateway -n gateway-profile-name start


디버깅 로그 사용의 문제 해결

Rewriter 문제를 해결하려면 디버깅 로그를 사용해야 합니다.

디버깅 메시지는 다음과 같이 분류됩니다.

Rewriter 디버깅 수준 설정

    Rewriter 디버깅 수준을 설정하려면
  1. 게이트웨이 컴퓨터에 루트로 로그인하여 다음 파일을 편집합니다.
  2. gateway-install-root/SUNWam/config/AMConfig-instance-name.properties

  3. 디버깅 수준을 설정합니다.
  4. com.iplanet.services.debug.level=

    디버깅 수준은 다음과 같습니다.

    error - 심각한 오류만 디버깅 파일에 기록됩니다. 이런 오류가 발생하면 보통 Rewriter가 중지됩니다.

    warning - 경고 메시지가 기록됩니다.

    message - 모든 디버깅 메시지가 기록됩니다.

    off - 디버깅 메시지가 기록되지 않습니다.

  5. AMConfig-instance-name.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

디버깅 파일 이름

디버깅 수준이 메시지로 설정되면 디버깅이 일단의 파일을 생성합니다. 표 3-2에 Rewriter 파일과 여기에 포함된 정보가 나와 있습니다.

표 3-2  Rewriter 디버깅 파일 

파일 이름

정보

RuleSetInfo

다시 쓰기에 사용된 모든 규칙 집합이 이 파일에 기록됩니다.

Original Pages

페이지 URI, resolveURI (페이지 URI와 다른 경우), 컨텐트 MIME, 페이지에 적용된 규칙 집합, 구문 분석기 MIMIE 및 원본 컨텐트가 들어 있습니다.

구문 분석과 관련된 특정 오류/경고/메시지도 이 파일에 들어 있습니다.

메시지 모드에서는 전체 컨텐트가 기록됩니다. 경고 및 오류 모드에서는 다시 쓰는 동안 발생한 예외만 기록됩니다.

Rewritten Pages

페이지 URI, resolveURI (페이지 URI와 다른 경우), 컨텐트 MIME, 페이지에 적용된 규칙 집합, 구문 분석기 MIMIE 및 재작성된 컨텐트가 들어 있습니다.

이 파일은 디버그 모드가 메시지로 설정되었을 때 채워집니다.

Unaffected Pages

수정되지 않은 페이지 목록을 포함합니다.

URIInfo Pages

발견되어 변환된 URL이 들어 있습니다. 컨텐트가 원본 데이터와 동일하게 유지되는 모든 페이지의 세부 사항이 이 파일에 기록됩니다.

세부적으로 기록되는 내용: 페이지 URI, MIME 및 인코딩 데이터, 재작성에 사용된 rulesetID 그리고 구문 분석기 MIME.

위의 파일 이외에도 Rewriter는 위 파일에서 포착하지 않은 디버그 메시지의 파일을 생성합니다. 이 파일 이름은 두 부분으로 구성됩니다. 첫 번째 부분은 pwRewriter 또는 psSRARewriter이고 두 번째 부분은 portal 또는 gateway-profile-name을 사용한 확장자입니다.

디버깅 파일은 포털 또는 게이트웨이에 표시됩니다. 이 파일은 AMConfig-instance-name.properties 파일에 표시된 디렉토리에 있습니다.

Rewriter 구성 요소는 다음 파일 집합을 생성하여 디버깅을 지원합니다.

prefix_RuleSetInfo.extension

prefix_OrginalPages.extension

prefix_RewrittenPages.extension

prefix_UnaffectedPages.extension

prefix_URIInfo.extension

여기서

prefix는 URLScraper 사용 로그의 경우 psRewriter이거나 게이트웨이 사용 로그의 경우 psSRAPRewriter입니다.

extension은 URLScaper 사용의 경우 portal, 게이트웨이 사용의 경우 gateway-profile-name입니다.

예를 들어, 게이트웨이에서 Rewriter가 페이지를 변환하는데 사용되고 기본 게이트웨이 프로필이 사용되는 경우 디버깅이 다음 파일을 만듭니다.

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/attribute.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com과 host1.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>

// <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 토큰 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/HTML/jstokens/JStokens.html

  3. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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=”onClick” type=”DJS”/>

<Function type="URL" name="Check" paramPatterns="y"/>


참고   

<Function name="URL" name="Check" paramPatterns="y"/>는 JavaScript 함수 규칙이며 JavaScript 함수 예제에 자세하게 설명되어 있습니다.


재작성 후의 HTML

<html>

<head>

Rewriting starts

<script language="javascript">

function Check(test,ind){

if (ind == 'blur')

{alert("testing onBlur")}

if (ind == 'focus')

{alert("testing onFocus")}

}

</SCRIPT>

</head>

<body>

<form>

<input TYPE=TEXT SIZE=20 value=blur onAbort="Check('gateway URL/portal-server-URL/indexblur.html','blur');return;">

<input TYPE=TEXT SIZE=20 value=blur onBlur="Check('gateway URL/portal-server-URL/indexblur.html','blur');return;">

<input TYPE=TEXT SIZE=20 value=focus onFocus="Check('gateway URL/portal-server-URL/focus.html','focus');return;">

<input TYPE=TEXT SIZE=20 value=focus onChange="Check('gateway URL/portal-server-URL/focus.html','focus');return;">

<input TYPE=TEXT SIZE=20 value=focus onClick="Check('gateway URL/portal-server-URL/focus.html','blur');return;">

// 이 샘플에서는 모든 명령문이 다시 작성됩니다. 각 경우에 게이트웨이 및 Portal Server URL이 접두어로 사용됩니다. onAbort, onBlur, onFocus, onChange 및 onClick에 대한 규칙이 default_gateway_ruleset 파일에 정의되었기 때문입니다. Rewriter는 JavaScript 토큰을 검색한 다음 추가 처리를 할 수 있도록 JavaScript 함수 규칙으로 전달합니다. 샘플의 두 번째 규칙은 Rewriter에 다시 작성할 매개 변수를 알려줍니다.

</body>

<br>

Rewriting ends

</html>

HTML 폼 예제

    폼 예제를 사용하려면
  1. 다음 위치에서 예제에 액세스합니다.
  2. portal-server-URL/rewriter/HTML/forms/formrule.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
  4. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.

  5. 이 예제에 지정된 규칙을 "HTML 속성 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
  6. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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">

// <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>

HTML 애플릿 예제

    애플릿 예제를 사용하려면
  1. 애플릿 클래스 파일을 얻습니다. RewriteURLinApplet.class 파일은 다음 위치에 있습니다.
  2. portal-server-URL/rewriter/HTML/applet/appletcode

    애플릿 코드가 있는 페이지의 기본 URL은 다음과 같습니다.

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

  3. 이 예제에 지정된 규칙을 "HTML 속성 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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=RewriteURLinApplet.class archive=/test>

// 규칙 <Attribute name="codebase"/>가 이미 default_gateway_ruleset 파일의 일부이기 때문에 이 URL은 다시 작성됩니다. appletcode 디렉토리까지의 경로와 함께 게이트웨이와 Portal Server URL이 접두어로 사용됩니다.

<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>

JavaScript 컨텐트 예제

JavaScript URL 변수 예제

    JavaScript URL 변수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/variables/url/js_urls.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
  4. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.

  5. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오.
  6. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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="imgsrc" type="URL"/>

재작성 후의 HTML 페이지

<html>

Rewriting starts

<head>

<title>JavaScript Variable test page</title>

</head>

<body>

<script LANGUAGE="Javascript">

<!--

//URL Variables

var imgsrc="gateway-URL/portal-server-URL/tmp/tmp.jpg";

var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/variables/url/tmp/tmp.jpg";

var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/variables/tmp/tmp.jpg";

var imgsrc="gateway-URL/portal-server-URL/rewriter/JavaScript/tmp/tmp.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>

JavaScript EXPRESSION 변수 예제

    JavaScript Expression 변수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/variables/expr/expr.html

  3. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우).
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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 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 페이지

<html>

<head>

<title>JavaScript EXPRESSION Variables Test Page</title>

</head>

<body>

<SCRIPT>

// Rewriter는 래퍼 함수 psSRAPRewriter_convert_expression을 여기에 추가합니다.

</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>

JavaScript DHTML 변수 예제

    JavaScript DHTML 변수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/variables/dhtml/dhtml.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
  4. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우). Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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이 사용되어 최종적으로 다시 작성된 결과가 유도됩니다.

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>

JavaScript DJS 변수 예제

    JavaScript DJS 변수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/variables/djs/djs.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.
  4. 이 예제에 지정된 두 개의 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우). Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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="dJSVar" type="DJS"/>

<Variable name="dJSimgsrc?type=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';"

// 위의 모든 구문은 게이트웨이 및 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>

JavaScript SYSTEM 변수 예제

    JavaScript System 변수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/variables/system/system.html

  3. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우).
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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 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

<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>

JavaScript URL 함수 예제

    JavaScript URL 함수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/functions/url/url.html

  3. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우). Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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 Expressions 함수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/functions/expr/expr.html

  3. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우).
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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()));

// 규칙이 EXPRESSION 유형인 jstest1 함수의 첫 번째 매개 변수를 다시 써야 한다고 규정합니다. 이 표현식의 값은 /test/images/test.html입니다. 이 앞에 게이트웨이 및 Portal Server 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. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우).
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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의 첫 번째 매개 변수를 다시 작성해야 한다고 지정합니다. Rewriter는 첫 번째 매개 변수를 단순 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>')

// 두 번째 규칙은 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>

JavaScript DJS 함수 예제

    JavaScript DJS 함수 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/JavaScript/functions/djs/djs.html

  3. 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 abc.sesta.com이 정의되어 있어야 합니다.
  4. 정의되어 있지 않으면 직접 연결이 가정되고 게이트웨이 URL이 앞에 덧붙지 않습니다.

  5. 이 예제에 지정된 규칙을 "JavaScript 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우). Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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="top.location"/>

재작성 후의 HTML 페이지

<html>

Testing JavaScript DJS Functions

<br>

<script>

menu.addItem(new NavBarMenuItem("All Available Information","javaScript:top.location='gateway-URL/http://abc.sesta.com'"));

// abc.sesta.com은 게이트웨이 서비스에서 [도메인 및 부속 도메인의 프록시] 목록에 있는 항목입니다. 따라서 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>

XML 속성 예제

    XML 속성 예제를 사용하려면
  1. 이 예제는 다음에서 액세스할 수 있습니다.
  2. portal-server-URL/rewriter/XML/attrib.html

  3. 이 예제에 지정된 규칙을 "XML 소스 재작성을 위한 규칙" 부분의 default_gateway_ruleset에 추가하십시오 (아직 없는 경우).
  4. Access Manager 관리 콘솔에 있는 Portal Server 구성의 Rewriter 서비스에서 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 name은 href이고, tag는 check이며, valuePatterns는 1234입니다. valuePatterns 이후의 문자열이 다시 작성됩니다. valuePatterns에 대한 자세한 내용은 규칙에 패턴 매칭 사용을 참조하십시오.

</body>

Rewriting ends

</html>


사례 연구

여기에는 예제 메일 클라이언트에 대한 소스 HTML 페이지가 포함되어 있습니다. 이 사례 연구에서는 가능한 모든 경우와 규칙을 다루지 않습니다. 실제 인트라넷 페이지의 규칙을 쉽게 구성하도록 돕기 위한 예제 규칙 집합입니다.

가정

이 사례 연구에서는 다음을 가정합니다.

예제 페이지 1

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">

<!-- saved from url=(0053)http://abc.siroe.com/mailclient/destin/?Cmd=navbar -->

<HTML XMLNS:WM><HEAD>

<META http-equiv=Content-Type content="text/html; CHARSET=utf-8">

<META http-equiv=Pragma content=no-cache>

<META http-equiv=Expires content=0><!--Copyright (c) 2000 Microsoft Corporation. All rights reserved.--><!--CURRENT FILE== "IE5" "WIN32" navbar -->

<STYLE>WM\:DROPMENU {

BEHAVIOR: url(http://abc.siroe.com/mailweb/controls/dropmenu.htc)

}

</STYLE>

<LINK href="destin_files/navbar.css" type=text/css rel=stylesheet>

<SCRIPT language=javascript>

var g_szUserBase= "http://abc.siroe.com/mailclient/destin"+"/";

var g_szFolder= ".";

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

var g_szImagePath= g_szVirtualRoot + "/img/";

</SCRIPT>

<SCRIPT src="/destin_files/navbar.js"></SCRIPT>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>

<BODY oncontextmenu=return(event.ctrlKey); onselectstart=return(false);

id=outbar_mainbody style="BACKGROUND-COLOR: appworkspace" leftMargin=0

topMargin=0 scroll=no>

<TABLE class=nbTableMain id=nbTableMain style="HEIGHT: 100%" cellSpacing=0

cols=1 cellPadding=0 rows="2">

<TBODY>

<TR>

<TD class=treeBrand>

<DIV class=treeOFLOW><IMG

style="PADDING-RIGHT: 0px; PADDING-LEFT: 0px; PADDING-BOTTOM: 0px; PADDING-TOP: 0px"

src="/destin_files/logo-ie5.gif" border=0></DIV></TD></TR>

<TR height="100%">

<TD>

<TABLE class=nbTable cellSpacing=0 cols=1 cellPadding=0 rows="4">

<TBODY>

<TR>

<TD class=nbFlybar id=show_navbar onkeydown=flybar_keydown()

onclick=ToggleTab(this.id) tabIndex=0 noWrap>

<DIV class=treeOFLOW>Shortcuts</DIV></TD></TR>

<TR style="HEIGHT: 100%">

<TD id=idOutbarpane style="TEXT-ALIGN: center" vAlign=top><A

id=inbox

href="http://abc.siroe.com/mailclient/destin/Inbox/?Cmd=목차&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=목차"

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=목차"

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은 예제 규칙 집합과 사례 연구 사이의 매핑을 보여줍니다.

표 3-3  예제 규칙 집합과 사례 연구 사이의 매핑

페이지 컨텐트

적용 규칙

Rewriter 결과

설명

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

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

var g_szVirtualRoot= "http://gateway.sesta.com/http://abc.siroe.com/mailweb";

g_szVirtualRoot는 그 값이 단순 URL인 변수입니다.

이 규칙은 URL 유형의 변수 g_szVirtualRoot를 검색하라고 Rewriter에 지시합니다. 웹 페이지에 이런 변수가 있으면 Rewriter가 이를 절대 URL로 변환하고 접두어로 게이트웨이 URL을 사용합니다.

src="/destin_files/logo-ie5.gif"

<Attribute name="src" />

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

src는 속성 이름이며 태그나 valuePattern이 따라붙지 않습니다.

이 규칙은 이름이 src인 모든 속성을 검색하고 그 속성 값을 다시 작성하도록 Rewriter에 지시합니다.

href="http://abc.siroe.com/mailclient/destin/Inbox/?Cmd=목차&amp;Page=1"

<Attribute name="href" />

href="http://gateway.sesta.com/http://abc.siroe.com/mailclient/destin/Inbox/?Cmd=목차&amp;Page=1"

href는 속성 이름이며 태그나 valuePattern이 따라붙지 않습니다.

이 규칙은 이름이 href인 모든 속성을 검색하고 그 속성 값을 다시 작성하도록 Rewriter에 지시합니다.


참고   

규칙 집합을 적용하는 우선 순위는 hostname-subdomain-domain입니다.

예를 들어, 도메인 기반 규칙 집합 목록에 다음 항목이 있다고 가정합니다.

sesta.com|ruleset1

eng.sesta.com|ruleset2

host1.eng.sesta.com|ruleset3

ruleset3은 host1의 모든 페이지에 적용됩니다.

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의 규칙 집합

SRA 소프트웨어는 Sun Java System Web Server 및 IBM 응용 프로그램 서버에 설치된 MS Exchange 2000 SP3과 Outlook Web Access (OWA) 의 MS Exchange 2003을 지원합니다.

    OWA 규칙 집합을 구성하려면
  1. Access Manager 관리 콘솔에 관리자로 로그인합니다.
  2. [서비스 구성] 탭을 선택합니다.
  3. SRA 구성 아래에서 게이트웨이 옆에 있는 화살표를 누릅니다.
  4. 게이트웨이 페이지가 표시됩니다.

  5. 속성을 설정할 게이트웨이 프로필을 누릅니다.
  6. 게이트웨이 프로필 편집 페이지가 표시됩니다.

  7. [규칙 집합에 URI 매핑] 필드에서 Exchange 2000이 설치된 서버 이름, 그리고 이어 Exchange 2000 서비스 팩 4 OWA 규칙 집합의 이름을 입력합니다.
  8. 예:

    exchange.domain.com|exchange_2000sp3_owa_ruleset.

공용 폴더 사용


6.x 규칙 집합을 3.0과 매핑

다음 표에서는 SRA Rewriter 규칙과 이전 릴리스의 Portal Server 제품의 매핑을 나열합니다.

표 3-4  SP3의 규칙 매핑 

Rewriter 6.0 DTD 요소

Rewriter 3.0 목록 상자 이름

HTML 컨텐트에 대한 규칙

속성 - URL

Rewrite HTML 속성

속성 - DJS

JavaScript를 포함한 Rewrite HTML 속성

폼

Rewrite 폼 입력 태그 목록

애플릿

Rewrite 애플릿/객체 매개 변수 값 목록

JavaScript 컨텐트에 대한 규칙

변수 - URL

URL의 Rewrite JavaScript 변수

변수 - EXPRESSION

Rewrite JavaScript 변수 함수

변수 - DHTML

HTML의 Rewrite JavaScript 변수

변수 - DJS

JavaScript의 Rewrite JavaScript 변수

변수 - SYSTEM

Rewrite JavaScript 시스템 변수

함수 - URL

Rewrite JavaScript 함수 매개 변수

함수 - EXPRESSION

Rewrite JavaScript 함수 매개 변수 함수

함수 - DHTML

HTML의 Rewrite JavaScript 함수 매개 변수

함수 - DJS

JavaScript의 Rewrite JavaScript 함수 매개 변수

XML 컨텐트에 대한 규칙

속성 - URL

XML 문서의 Rewrite 속성

TagText

XML 문서의 Rewrite 텍스트 데이터

CSS 컨텐트에 대한 규칙

규칙이 필요 없습니다. 기본적으로 모든 URL이 변환됩니다.

WML 컨텐트에 대한 규칙

정의된 규칙이 없습니다. WML은 HTML로 취급되며 HTML 규칙이 적용됩니다.

WMLScript 컨텐트에 대한 규칙

WML 스크립트에 대한 지원 없음



이전      목차      색인      다음     


부품 번호: 819-4615.   저작권 2005 Sun Microsystems, Inc. 모든 권리는 저작권자의 소유입니다.