|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |
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 }它包含对象标识符字符串和可选的 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
- 另请参见:
-
ExtendedResponse
,LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)
方法摘要 | |
---|---|
ExtendedResponse |
createExtendedResponse(String id, byte[] berValue, int offset, int length) 创建与此请求对应的响应对象。 |
byte[] |
getEncodedValue() 检索 LDAP 扩展操作请求的 ASN.1 BER 编码值。 |
String |
getID() 检索请求的对象标识符。 |
方法详细信息 |
---|
getID
String getID()
- 检索请求的对象标识符。
-
-
- 返回:
- 表示 LDAP ExtendedRequest.requestName 组件的非 null 对象标识符字符串。
getEncodedValue
byte[] getEncodedValue()
- 检索 LDAP 扩展操作请求的 ASN.1 BER 编码值。如果值不存在,则返回 null。 结果为原始 BER 字节,包括请求值的标记和长度。它不包括请求 OID。服务提供程序调用此方法获取将置于扩展操作中的位,该操作将被发送给 LDAP 服务器。
-
-
- 返回:
- 表示 LDAP ExtendedRequest.requestValue 组件的 ASN.1 BER 编码内容的字节数组(可能为 null)。
- 抛出:
-
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
- 响应控件的 ASN.1 BER 编码值(可能为 null)。此为原始 BER 字节,包括响应值的标记和长度。它不包括响应 OID。 -
offset
- berValue 中要使用的字节的开始位置。 -
length
- berValue 中要使用的字节数。 - 返回:
- 非 null 对象。
- 抛出:
-
NamingException
- 如果因出错而无法创建扩展响应。 - 另请参见:
-
ExtendedResponse
所有类
|
|||||||||
摘要: 嵌套 | 字段 | 构造方法 | 方法 | 详细信息: 字段 | 构造方法 | 方法 |