JavaTM Platform
Standard Ed. 6

javax.naming.ldap
인터페이스 ExtendedRequest

모든 슈퍼 인터페이스:
Serializable
기존의 구현 클래스의 일람:
StartTlsRequest


public interface ExtendedRequest
extends Serializable

이 인터페이스는,「RFC 2251」으로 정의되고 있는 LDAPv3 확장 조작의 요구를 나타냅니다.

     ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
              requestName      [0] LDAPOID,
              requestValue     [1] OCTET STRING OPTIONAL }
 
이 요구는, 객체 확장자(extension)의 캐릭터 라인과 임의의 ASN. 1 BER 로 encode 된 값으로 구성됩니다.

이 클래스의 메소드는 서비스 프로바이더로 사용되어 LDAP 서버에 보내는 비트를 구축합니다. 일반적으로, 어플리케이션은 이 인터페이스를 구현하는 클래스만을 처리하고 있어, 특정의 확장 조작의 요구에 응해 필요한 정보를 클래스에 제공합니다. 다음에 LDAPv3 확장 조작을 실행하기 위해서, 클래스는 인수로서LdapContext.extendedOperation() 메소드에 패스됩니다.

「시간 취득」의 확장 조작을 지원한 LDAP 서버를 예를 듭니다. LDAP 서버는, GetTimeRequest 및 GetTimeResponse 의 클래스를 다음과 같이 지정합니다.

 public class GetTimeRequest implements ExtendedRequest {
     public GetTimeRequest() {... };
     public ExtendedResponse createExtendedResponse(String id, 
            byte[] berValue, int offset, int length) 
            throws NamingException {
         return new GetTimeResponse(id, berValue, offset, length);
     }
     ...
 }
 public class GetTimeResponse implements ExtendedResponse {
     long time;
     public GetTimeResponse(String id, byte[] berValue, int offset, 
            int length) throws NamingException {
         time = ... // decode berValue to get time
     }
     public java.util.Date getDate() { return new java.util.Date(time) };
     public long getTime() { return time };
     ...
 }
프로그램은 이러한 클래스를 다음과 같이 사용합니다.
 GetTimeResponse resp =
        (GetTimeResponse) ectx.extendedOperation(new GetTimeRequest());
 long time = resp.getTime();

도입된 버젼:
1.3
관련 항목:
ExtendedResponse , LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)

메소드의 개요
 ExtendedResponse createExtendedResponse (String  id, byte[] berValue, int offset, int length)
          이 요구에 대응하는 응답 객체를 작성합니다.
 byte[] getEncodedValue ()
          LDAP 의 확장 조작 요구의 ASN. 1 BER 로 encode 된 값을 가져옵니다.
 String getID ()
          이 요구의 객체의 식별자를 검출합니다.
 

메소드의 상세

getID

String  getID()
이 요구의 객체의 식별자를 검출합니다.

반환값:
LDAP 의 ExtendedRequest.requestName 컴퍼넌트를 나타내는 null 이외의 객체 식별자의 캐릭터 라인

getEncodedValue

byte[] getEncodedValue()
LDAP 의 확장 조작 요구의 ASN. 1 BER 로 encode 된 값을 가져옵니다. 값이 빈 상태(empty)의 경우, null 가 돌려주어집니다. 이 결과는, 요구치의 태그 및 길이를 포함한 그대로 (raw)의 BER 바이트로 표시됩니다. 다만, 요구의 OID 는 표시되지 않습니다. 이 메소드는, LDAP 서버에 보내지는 확장 조작에 비트를 포함하기 위해(때문에), 서비스 프로바이더에 의해 불려 갑니다.

반환값:
LDAP 의 ExtendedRequest.requestValue 컴퍼넌트의 ASN. 1 BER 로 encode 된 내용을 나타내는 null 의 가능성이 있다 바이트 배열
예외:
IllegalStateException - 요구가 불충분 또는 무효인 데이터 및 상태를 포함하고 있기 (위해)때문에, encode 된 값이 검출되지 않았던 경우

createExtendedResponse

ExtendedResponse  createExtendedResponse(String  id,
                                        byte[] berValue,
                                        int offset,
                                        int length)
                                        throws NamingException 
이 요구에 대응하는 응답 객체를 작성합니다.

서비스 프로바이더가 확장 조작의 요구를 LDAP 서버에 보낸 뒤, 이 서버로부터 응답을 받아들입니다. 조작의 요구가 실패하면(자), 프로바이더는 NamingException 를 throw 합니다. 조작이 정상적으로 종료하면(자), 프로바이더는 이 메소드를 응답하러 돌아온 데이터를 사용해 호출합니다. 확장 조작의 요구에 임의의 ExtendedResponse 인터페이스를 구현하는 클래스를 돌려주는 것이, 이 메소드의 작업이 됩니다.

예를 들어, Start TLS 확장 요구 클래스는, Start TLS 확장 응답의 처리 방법을 인식하기 위해서, ExtendedResponse 를 구현하는 클래스를 작성합니다.

파라미터:
id - 응답 컨트롤의 null 의 가능성이 있는 객체 식별자
berValue - null 의 가능성이 있는 응답 컨트롤의 ASN. 1 BER 로 encode 된 값 이 값은, 응답치의 태그와 길이를 포함한다 raw BER 바이트이다. 다만, 응답 OID 는 포함하지 않는다.
offset - 사용 바이트의 berValue 의 개시 위치
length - berValue 의 사용 바이트수
반환값:
null 이외의 객체
예외:
NamingException - 에러이기 때문에 확장 응답이 작성할 수 없는 경우
관련 항목:
ExtendedResponse

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 도 참조해 주세요.