- 所有超级接口:
-
Serializable
- 所有已知实现类:
-
StartTlsRequest
该接口表示在RFC 2251中定义的LDAPv3扩展操作请求。
ExtendedRequest ::= [APPLICATION 23] SEQUENCE { requestName [0] LDAPOID, requestValue [1] OCTET STRING OPTIONAL }它包括一个对象标识符字符串和一个可选的ASN.1 BER编码值。
此类中的方法由服务提供程序用于构造要发送到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();
- 自:
- 1.3
- 参见:
-
Method Summary
Modifier and TypeMethodDescriptioncreateExtendedResponse
(String id, byte[] berValue, int offset, int length) 创建与此请求对应的响应对象。byte[]
检索LDAP扩展操作请求的ASN.1 BER编码值。getID()
检索请求的对象标识符。
-
Method Details
-
getID
String getID()检索请求的对象标识符。- 返回:
-
非空对象标识符字符串,表示LDAP
ExtendedRequest.requestName
组件。
-
getEncodedValue
byte[] getEncodedValue()检索LDAP扩展操作请求的ASN.1 BER编码值。如果值不存在,则返回Null。结果是原始的BER字节,包括请求值的标签和长度。它不包括请求OID。服务提供程序调用此方法以获取要放入要发送到LDAP服务器的扩展操作中的位。- 返回:
-
可能为Null的字节数组,表示LDAP
ExtendedRequest.requestValue
组件的ASN.1 BER编码内容。 - 抛出:
-
IllegalStateException
- 如果无法检索编码值,因为请求包含不足或无效的数据/状态。
-
createExtendedResponse
ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException 创建与此请求对应的响应对象。服务提供程序将扩展操作请求发送到LDAP服务器后,将从服务器接收到响应。如果操作失败,提供程序将抛出NamingException。如果操作成功,提供程序将使用响应中返回的数据调用此方法。此方法的工作是返回一个适用于扩展操作请求的实现ExtendedResponse接口的类。
例如,Start TLS扩展请求类需要知道如何处理Start TLS扩展响应。它通过创建一个实现ExtendedResponse的类来实现这一点。
- 参数:
-
id
- 响应控件的可能为Null的对象标识符。 -
berValue
- 响应控件的可能为Null的ASN.1 BER编码值。这是原始的BER字节,包括响应值的标签和长度。它不包括响应OID。 -
offset
- 要使用的berValue中字节的起始位置。 -
length
- 要使用的berValue中的字节数。 - 返回:
- 非空对象。
- 抛出:
-
NamingException
- 如果由于错误无法创建扩展响应。 - 参见:
-