public interface ExtendedRequest extends Serializable
ExtendedRequest::= [ 23 ]应用序列{requestname [ 0 ] ldapoid,requestvalue [ 1 ]字符串可选}它包括一个对象标识符字符串和一个可选的ASN.1 BER编码的值1。
在这类方法由服务提供者用来构建比特发送到LDAP服务器。应用程序通常只处理实现此接口的类,为它们提供一个特定的扩展操作请求所需的任何信息。它将通过这样的类进行操作的LdapContext.extendedOperation() LDAPv3扩展方法的参数。
例如,假设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();
ExtendedResponse,
LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)
| Modifier and Type | Method and Description |
|---|---|
ExtendedResponse |
createExtendedResponse(String id, byte[] berValue, int offset, int length)
创建对应于此请求的响应对象。
|
byte[] |
getEncodedValue()
检索ASN.1 BER编码1的LDAP扩展操作请求值。
|
String |
getID()
检索请求的对象标识符。
|
String getID()
byte[] getEncodedValue()
IllegalStateException如果编码的值不能被检索,因为请求包含不足或无效的数据/状态。
ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
服务提供商发送操作请求后扩展到LDAP服务器,它将从服务器接收响应。如果操作失败,供应商将namingexception。如果操作成功,提供程序将使用它在响应中返回的数据调用此方法。它返回一个类实现的接口,extendedresponse扩展操作请求适当的这种方法的工作。
例如,一个启动TLS扩展请求类需要知道如何处理启动TLS扩展响应。这是通过创建一个类实现extendedresponse。
id -可能的空对象的响应控制标识符。
berValue -可能的空ASN.1 BER编码1的响应控制值。这是原始的比特率字节,包括标签和响应值的长度。它不包括响应OID。
offset -起始位置的字节bervalue使用。
length - bervalue字节数的使用。
NamingException如果不能建立扩展响应错误。
ExtendedResponse
Submit a bug or feature
For further API reference and developer documentation, see Java SE Documentation. That documentation contains more detailed, developer-targeted descriptions, with conceptual overviews, definitions of terms, workarounds, and working code examples.
Copyright © 1993, 2014, Oracle and/or its affiliates. All rights reserved.