public interface ExtendedRequest extends Serializable
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();
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()
检索LDAP扩展操作请求的ASN.1 BER编码值。
|
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编码值。
这是包含标签和响应值长度的原始BER字节。
它不包括响应OID。
offset
- 在berValue中使用的字节的起始位置。
length
- 要使用的berValue中的字节数。
NamingException
- 如果由于错误而无法创建扩展响应。
ExtendedResponse