사용자 정의 태그 라이브러리 작성

사용자 정의 태그 라이브러리 작성에 관련되는 단계는 예제에 가장 잘 설명되어 있습니다. 다음 예는 sslCheck라는 새 태그 라이브러리를 작성하기 위한 단계를 표시합니다. 이 라이브러리는 웹 사이트 보안에 SSL(Secure Socket Layer)을 사용합니다. SSL은 웹 브라우저와 웹 서버 사이의 보안 연결을 허용하므로 sslCheck 태그는 보안 연결을 사용하기 위한 유연한 방법을 제공합니다. 태그는 Java™ 및 JavaScript™를 비롯하여 JSP 스크립트에서 사용할 수 있습니다.

다음의 간단한 태그 구현은 사용된 프로토콜을 확인하며, 태그의 매개변수화(나중에 설명됨)에 따라 사용자를 보안 페이지나 오류 페이지로 경로 재지정합니다. 이 보안 연결 구현은 JSP 페이지(페이지를 동적으로 실행 중인 서버측)에 대해서만 작동하고 HTML(정적) 페이지에 대해서는 작동하지 않습니다.

새 태그에 대해 두 파일을 작성해야 합니다.
  • sslCheck.java - 태그의 Java 구현
  • sslCheck.tld - 새 태그에 대한 taglib 정의

sslCheck .java 작성

Java Perspective에서 다음을 수행하십시오.
  1. YourApp를 선택하십시오.
  2. 파일 > 새로 작성 > 클래스를 선택하십시오. 새 Java 클래스 창에서 다음을 입력하십시오.
    • 패키지: com.ibm.entry.security
    • 이름: sslCheck
    • 수퍼클래스: java.lang.Object
  3. 완료를 클릭하십시오. 소스 파일이 자동으로 열립니다.
  4. 자동 코드를 삭제하고 다음 코드로 바꾸십시오.
    package com.ibm.entry.security;
     import java.io.*;
     import javax.servlet.http.*;
     import javax.servlet.jsp.*;
     import javax.servlet.jsp.tagext.TagSupport;
    
    public class sslCheck extends TagSupport {
    
      private String errorpage=null;
    
      public void setErrorpage(String errorpage) {
         this.errorpage=errorpage;
       }
    
      public int doStartTag() throws JspException {
         try {
          HttpServletRequest request=(HttpServletRequest)pageContext.getRequest();
           HttpServletResponse response=(HttpServletResponse)pageContext.getResponse();
           if(request.getScheme().indexOf("https")==-1) {
             if(errorpage!=null) {
               // redirect to the error page
               response.sendRedirect(errorpage);
             } else {
               // redirect to the page using ssl
               String jumpURL="https://"+request.getServerName()+request.getRequestURI();
               if(request.getQueryString()!=null) jumpURL+="?"+request.getQueryString();
               response.sendRedirect(jumpURL);
             }
             return SKIP_PAGE;
           }
         } catch (IOException ioe) {
           throw new JspTagException("sslcheck tag failed");
         }
        return EVAL_BODY_INCLUDE;
       }
    
      public int doEndTag() {
         return EVAL_PAGE;
       }
     } 
  5. 파일을 저장하고 닫으십시오.

sslCheck.tld 작성

태그는 TLD 파일에 정의해야 합니다. 웹 Perspective에서 TLD 파일을 작성하려면 다음을 수행하십시오.
  1. YourApp를 선택하십시오.
  2. 웹 모듈 WEB-INF를 선택하십시오.
  3. WEB-INF/tlds 폴더를 마우스 오른쪽 단추로 클릭하십시오.
  4. 새로 작성 > 파일을 선택하십시오.
  5. 파일 이름으로 sslCheck.tld를 지정하십시오.
  6. 완료를 클릭하십시오. 소스 파일이 자동으로 열립니다. 자동 코드를 삭제하고 다음 코드로 바꾸십시오.
    <?xml version="1.0" encoding="UTF-8"?>
      <taglib>
        <tlibversion>1.0</tlibversion>
        <shortname>sslchk</shortname>
        <info>Tag library for checking SSL</info>
        <tag>
          <name>sslcheck</name>
          <tagclass>com.ibm.entry.security.sslCheck</tagclass>
          <bodycontent>empty</bodycontent>
          <attribute>
            <name>errorpage</name>
            <required>false</required>
            <rtexprvalue>true</rtexprvalue>
          </attribute>
        </tag>
      </taglib>
  7. 파일을 저장하고 닫으십시오.

태그 사용

sslcheck 태그를 사용하려면 먼저 다음 taglib 참조를 작성해야 합니다.
  1. JSP 소스 파일의 첫 번째 행에 다음 taglib 정의를 붙여넣으십시오.
    <%@ taglib uri="/WEB-INF/tlds/sslCheck.tld" prefix="sslchk" %>
  2. taglib 정의 바로 다음에 다음과 같은 SSL 검사 태그 중 하나를 코드에 위치시키십시오. errorpage 속성을 사용하거나 사용하지 않고 태그를 사용할 수 있습니다.
    옵션 설명
    <sslchk:sslcheck errorpage="error_page"/> 요청이 JSP로 이동하는 데 SSL을 사용하지 않을 경우, errorpage 속성으로 정의된 페이지가 표시됩니다. 응용프로그램을 사용하기 전에 오류 메시지가 있는 오류 페이지를 작성해야 합니다.
    <sslchk:sslcheck/> errorpage 속성 없이 태그를 사용하면 페이지는 즉시 동일 위치로 경로 재지정되지만 보안 연결을 사용합니다.
  3. 파일을 저장하고 닫으십시오.

SSL 전송 설정

WebSphere® V5 또는 V5.1 서버에 전개하는 경우, 개발 환경에서 SSL 연결을 테스트 하기 전에 테스트 Application Server에 대해 SSL 전송을 설정해야 합니다. SSL 전송을 설정하려면 다음 단계를 완료하십시오.
  1. J2EE Perspective에서, 문서 분배 응용프로그램에 대해 테스트 서버 구성(WebSphere 관리 도메인)을 여십시오.
  2. 포트 탭을 클릭하십시오.
  3. HTTP 전송 목록 옆에 있는 추가를 클릭하십시오. 다음 값을 제공하십시오.
    • 호스트 이름: *(별표)
    • 포트: 443
  4. SSL 사용 선택란을 선택하십시오.
  5. 외부 선택란을 선택하십시오.
  6. 확인을 클릭하십시오.
  7. 파일을 저장하고 닫으십시오.
이제 Application Server에 대해 SSL 전송이 설정되므로 개발 환경에서 SSL 연결을 테스트할 수 있습니다. 임베디드 HTTP 서버는 테스트 서버에 대해 더미 SSL 서버 인증서를 사용합니다. 인증서를 변경하려면 iKeyman 유틸리티를 사용하십시오. 더미 SSL 서버 인증서는 다음 위치에 있습니다.
<wsad install directory>\plugins\com.ibm.etools.websphere.runtime\etc\DummyServerKeyFile.jks
WebAS는 JKS 파일의 암호입니다.

태그 테스트

  1. login/login.jsp 파일을 열고 소스 탭을 클릭하십시오.
  2. 다음 행을 파일 맨 위에 놓으십시오.
    <%@ taglib uri="/WEB-INF/tlds/sslCheck.tld" prefix="sslchk" %>
    <sslchk:sslcheck/>
  3. 파일을 저장하십시오.
  4. 응용프로그램을 시작한 후 로그인하십시오.
브라우저는 보안 연결을 사용하여 사이트에 액세스함을 알립니다. 응용프로그램이 프레임을 사용 중이고 프레임 중 하나 이상이 보안 연결을 사용할 경우, 브라우저에서의 위치는 "http"로 유지되고 "https"로 변경되지 않습니다.
사용 조건 | 피드백
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.