JavaTM 2
Platform
Std.  Ed.  v1. 4.0

javax.naming.ldap
클래스 StartTlsResponse

java.lang.Object 
  |
  +--javax.naming.ldap.StartTlsResponse
모든 구현 인터페이스:
ExtendedResponse , Serializable

public abstract class StartTlsResponse
extends Object
implements ExtendedResponse

이 클래스는 Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security 에 정의되고 있는 LDAPv3 의 StartTLS 확장 응답을 구현합니다. StartTLS 의 오브젝트 식별자는 1.3. 6.1. 4.1. 1466.20037 입니다. 확장 응답의 값은 정의되고 있지 않습니다.

StartTLS 의 확장 요구와 확장 응답은 TLS 접속을 확립할 경우에 사용합니다. TLS 접속은 extendedOperation() 를 호출한 JNDI 문맥에 관련지을 수 있었던 기존의 LDAP 접속상에 확립됩니다. 통상, JNDI 프로그램에서는 StartTLS 의 확장 요구와 확장 응답의 클래스를 다음과 같이 사용합니다.

 import javax.naming.ldap. *;
 
 // Open an LDAP association
 LdapContext ctx = new InitialLdapContext();

 // Perform a StartTLS extended operation
 StartTlsResponse tls =
     (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());

 // Open a TLS connection (over the existing LDAP association) and get details
 // of the negotiated TLS session: cipher suite, peer certificate, ...
 SSLSession session = tls.negotiate();

 // ... use ctx to perform protected LDAP operations

 // Close the TLS connection (revert back to the underlying LDAP association)
 tls.close();

 // ... use ctx to perform unprotected LDAP operations

 // Close the LDAP association
 ctx.close;
 

도입된 버젼:
1.4
관련 항목:
StartTlsRequest , 직렬화 된 형식

필드의 개요
static String OID
          StartTLS 확장 응답에 할당할 수 있고 있는 오브젝트 식별자는 1.3. 6.1. 4.1. 1466.20037 입니다.
 
생성자의 개요
protected StartTlsResponse ()
          StartTLS 확장 응답을 구축합니다.
 
메소드의 개요
abstract  void close ()
          TLS 접속을 정상적으로 닫아 기본이 되는 접속하러 돌아옵니다.
 byte[] getEncodedValue ()
          StartTLS 응답의 ASN. 1 BER 로 encode 된 값을 취득합니다.
 String getID ()
          StartTLS 응답의 오브젝트 식별자의 캐릭터 라인을 취득합니다.
abstract  SSLSession negotiate ()
          디폴트의 SSL 소켓 팩토리를 사용해, TLS 세션의 네고시에이션을 실시합니다.
abstract  SSLSession negotiate (SSLSocketFactory  factory)
          디폴트의 SSL 소켓 팩토리를 사용해, TLS 세션의 네고시에이션을 실시합니다.
abstract  void setEnabledCipherSuites (String [] suites)
          이 TLS 접속에 대해서 사용 가능하게 되어 있는 디폴트의 encode 방식을 오버라이드(override) 합니다.
abstract  void setHostnameVerifier (HostnameVerifier  verifier)
          TLS 핸드 쉐이크가 완료했을 때에, 디폴트의 호스트명 검증이 실패하고 있는 경우는 negotiate() 에 의해 사용되는 호스트명 베리파이아를 설정합니다.
 
클래스 java.lang. Object 에서 상속받은 메소드
clone , equals , finalize , getClass , hashCode , notify , notifyAll , toString , wait , wait , wait
 

필드의 상세

OID

public static final String  OID
StartTLS 확장 응답에 할당할 수 있고 있는 오브젝트 식별자는 1.3. 6.1. 4.1. 1466.20037 입니다.

관련 항목:
정수 필드치
생성자의 상세

StartTlsResponse

protected StartTlsResponse()
StartTLS 확장 응답을 구축합니다. 구상 서브 클래스에는 인수 없음의 public constructor 이 필요합니다.

메소드의 상세

getID

public String  getID()
StartTLS 응답의 오브젝트 식별자의 캐릭터 라인을 취득합니다.

정의:
인터페이스 ExtendedResponse 내의 getID
반환값:
오브젝트 식별자의 캐릭터 라인, 1.3. 6.1. 4.1. 1466.20037

getEncodedValue

public byte[] getEncodedValue()
StartTLS 응답의 ASN. 1 BER 로 encode 된 값을 취득합니다. StartTLS 응답에는 정의 끝난 값이 없기 때문에, 항상 null 가 돌려주어집니다.

정의:
인터페이스 ExtendedResponse 내의 getEncodedValue
반환값:
null 치

setEnabledCipherSuites

public abstract void setEnabledCipherSuites(String [] suites)
이 TLS 접속에 대해서 사용 가능하게 되어 있는 디폴트의 encode 방식을 오버라이드(override) 합니다. 사용 가능하게 하는 encode 방식은 SSLSocketFactory.getSupportedCipherSuites() 로부터 돌려주어지는 encode 방식의 리스트로 사용 가능하게 되지 않으면 안됩니다. 사용 가능하게 되어 있을 때에도, 피어가 그 encode 방식을 서포트하고 있지 않기도 하고, 필요한 증명서와 비공개열쇠를 입수할 수 없거나 하는 경우, 그 encode 방식은 사용할 수 없습니다.

파라미터:
suites - 사용 가능하게 하는 encode 방식의 이름의 리스트. null 는 지정할 수 없는
관련 항목:
negotiate()

setHostnameVerifier

public abstract void setHostnameVerifier(HostnameVerifier  verifier)
TLS 핸드 쉐이크가 완료했을 때에, 디폴트의 호스트명 검증이 실패하고 있는 경우는 negotiate() 에 의해 사용되는 호스트명 베리파이아를 설정합니다. setHostnameVerifier() 를 유효하게 하려면 ,negotiate() 가 불려 가기 전에, 호출할 필요가 있습니다. negotiate() 의 나중에 불려 갔을 경우,setHostnameVerifier() 는 처리를 실행하지 않습니다.

파라미터:
verifier - null 이외의 호스트명 베리파이아의 콜백
관련 항목:
negotiate()

negotiate

public abstract SSLSession  negotiate()
                              throws IOException 
디폴트의 SSL 소켓 팩토리를 사용해, TLS 세션의 네고시에이션을 실시합니다.

이 메소드는 negotiate(null) 와 등가입니다.

반환값:
네고시에이트 된 SSL 세션
예외:
IOException - TLS 세션의 확립중에 입출력 에러가 발생했을 경우
관련 항목:
setEnabledCipherSuites(java.lang.String[]) , setHostnameVerifier(javax.net.ssl.HostnameVerifier)

negotiate

public abstract SSLSession  negotiate(SSLSocketFactory  factory)
                              throws IOException 
디폴트의 SSL 소켓 팩토리를 사용해, TLS 세션의 네고시에이션을 실시합니다.

지정된 SSL 소켓 팩토리를 사용해 SSL 소켓을 작성해, 기존의 접속에 접속합니다. TLS 핸드 쉐이크를 실시해, 네고시에이트 된 세션의 정보를 돌려줍니다.

setEnabledCipherSuites 를 사용해 encode 방식이 설정되어 있는 경우, encode 방식은 TLS 핸드 쉐이크가 시작되기 전에 유효하게 됩니다.

호스트명 검증은 TLS 핸드 쉐이크의 완료 후에 행해집니다. 디폴트의 호스트명 검증에서는 서버의 호스트명이 서버의 증명서내의 호스트명 정보에 대해서 조합됩니다. 검증에 실패했을 때에,setHostnameVerifier 에 의해 콜백이 설정되어 있지 않은 경우는 네고시에이션은 실패합니다. 검증에 실패했을 때에,setHostnameVerifier 에 의해 콜백이 설정되어 있는 경우는 그 콜백을 사용해 네고시에이션이 성공하고 있는지 어떤지가 판정됩니다.

에러가 발생하면(자), SSL 소켓이 닫아 IOException 가 슬로우 됩니다. 기본이 되는 접속은 보관 유지됩니다.

파라미터:
factory - 사용하는 SSL 소켓 팩토리. null 의 경우도 있다. null 의 경우는 디폴트의 SSL 소켓 팩토리가 사용된다
반환값:
네고시에이션을 한 SSL 세션
예외:
IOException - TLS 세션의 확립중에 입출력 에러가 발생했을 경우
관련 항목:
setEnabledCipherSuites(java.lang.String[]) , setHostnameVerifier(javax.net.ssl.HostnameVerifier)

close

public abstract void close()
                    throws IOException 
TLS 접속을 정상적으로 닫아 기본이 되는 접속하러 돌아옵니다.

예외:
IOException - TLS 세션을 닫을 때 입출력 에러가 발생했을 경우

JavaTM 2
Platform
Std.  Ed.  v1. 4.0

버그의 보고와 기능의 리퀘스트
이외의 API 레퍼런스 및 개발자용 문서에 대해서는 Java 2 SDK SE 개발자용 문서를 참조해 주세요. 개발자전용의 상세한 해설, 개념의 개요, 용어의 정의, 버그의 회피책, 및 코드 실례가 포함되어 있습니다.

Java, Java 2 D, 및 JDBC 는 미국 및 그 외의 나라에 있어서의 미국 Sun Microsystems, Inc. 의 상표 혹은 등록상표입니다.
Copyright 1993-2002 Sun Microsystems, Inc. 901 San Antonio Road
Palo Alto, California, 94303, U.S.A. All Rights Reserved.