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.