JavaTM Platform
Standard Ed. 6

javax.naming.ldap
클래스 StartTlsResponse

java.lang.Object 
  상위를 확장 javax.naming.ldap.StartTlsResponse
모든 구현된 인터페이스:
Serializable , ExtendedResponse


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 생성자 이 필요합니다.

메소드의 상세

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 가 throw 됩니다. 기본이 되는 접속은 보관 유지됩니다.

파라미터:
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 Platform
Standard Ed. 6

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

Copyright 2006 Sun Microsystems, Inc. All rights reserved. Use is subject to license terms . Documentation Redistribution Policy 도 참조해 주세요.