uTools-Manuals/docs/java/javax/naming/ldap/ExtendedRequest.html

233 lines
9.7 KiB
HTML
Raw Blame History

This file contains invisible Unicode characters

This file contains invisible Unicode characters that are indistinguishable to humans but may be processed differently by a computer. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<div class="header">
<div class="subTitle">
compact3
</div>
<div class="subTitle">
javax.naming.ldap
</div>
<h2 class="title" title="Interface ExtendedRequest">Interface ExtendedRequest</h2>
</div><div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Superinterfaces:
</dt>
<dd>
<span><a href="../../../java/io/Serializable.html" title="java.io中的接口">Serializable</a></span>
</dd>
</dl>
<dl>
<dt>
所有已知实现类:
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/StartTlsRequest.html" title="javax.naming.ldap中的类">StartTlsRequest</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public interface <span class="typeNameLabel">ExtendedRequest</span>
extends <a href="../../../java/io/Serializable.html" title="interface in java.io">Serializable</a></pre>
<div class="block">
<span>此接口表示为在限定的LDAPv3扩展操作请求<a href="http://www.ietf.org/rfc/rfc2251.txt">RFC 2251</a></span>
<pre> <span>ExtendedRequest ::= [APPLICATION 23] SEQUENCE {
requestName [0] LDAPOID,
requestValue [1] OCTET STRING OPTIONAL }</span> </pre>
<span>它包括对象标识符串和可选的ASN.1 BER编码值。</span>
<p> <span>该类中的方法由服务提供商用于构造要发送到LDAP服务器的位。</span> <span>应用程序通常仅处理实现此接口的类,为其提供特定扩展操作请求所需的任何信息。</span> <span>然后,它将通过一个参数类作为<tt>LdapContext.extendedOperation()</tt>方法执行LDAPv3扩展操作。</span> </p>
<p> <span>例如假设LDAP服务器支持“获取时间”扩展操作。</span> <span>它将提供GetTimeRequest和GetTimeResponse类</span> </p>
<blockquote>
<span><pre>
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 };
...
}
</pre></span>
</blockquote>
<span>程序会使用这些类,如下所示:</span>
<blockquote>
<span><pre>
GetTimeResponse resp =
(GetTimeResponse) ectx.extendedOperation(new GetTimeRequest());
long time = resp.getTime();
</pre></span>
</blockquote>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.3
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="javax.naming.ldap中的接口"><code>ExtendedResponse</code></a> <a href="../../../javax/naming/ldap/LdapContext.html#extendedOperation-javax.naming.ldap.ExtendedRequest-"><code>LdapContext.extendedOperation(javax.naming.ldap.ExtendedRequest)</code></a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- --> </a> <h3>方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Method Summary table, listing methods, and an explanation">
<caption>
<span class="activeTableTab" id="t0"><span>所有方法</span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t2"><span><a href="javascript:show(2);">接口方法</a></span><span class="tabEnd"> </span></span>
<span class="tableTab" id="t3"><span><a href="javascript:show(4);">抽象方法</a></span><span class="tabEnd"> </span></span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor" id="i0">
<td class="colFirst"><code><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ExtendedRequest.html#createExtendedResponse-java.lang.String-byte:A-int-int-">createExtendedResponse</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> id, byte[] berValue, int offset, int length)</code>
<div class="block">
创建与此请求对应的响应对象。
</div> </td>
</tr>
<tr class="rowColor" id="i1">
<td class="colFirst"><code>byte[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ExtendedRequest.html#getEncodedValue--">getEncodedValue</a></span>()</code>
<div class="block">
检索LDAP扩展操作请求的ASN.1 BER编码值。
</div> </td>
</tr>
<tr class="altColor" id="i2">
<td class="colFirst"><code><a href="../../../java/lang/String.html" title="class in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/ExtendedRequest.html#getID--">getID</a></span>()</code>
<div class="block">
检索请求的对象标识符。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- --> </a> <h3>方法详细信息</h3> <a name="getID--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getID</h4> <pre><a href="../../../java/lang/String.html" title="class in java.lang">String</a> getID()</pre>
<div class="block">
检索请求的对象标识符。
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
表示LDAP
<tt>ExtendedRequest.requestName</tt>组件的非空对象标识符字符串。
</dd>
</dl> </li>
</ul> <a name="getEncodedValue--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getEncodedValue</h4> <pre>byte[] getEncodedValue()</pre>
<div class="block">
<span>检索LDAP扩展操作请求的ASN.1 BER编码值。</span>
<span>如果值不存在则返回空值。</span>
<span>结果是原始BER字节包括标签和请求值的长度。</span>
<span>它不包括请求OID。</span>
<span>该方法由服务提供商调用以将这些位放入扩展操作以发送到LDAP服务器。</span>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
表示LDAP
<tt>ExtendedRequest.requestValue</tt>组件的ASN.1 BER编码内容的可能的空字节数组。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/lang/IllegalStateException.html" title="class in java.lang">IllegalStateException</a></code> - 如果由于请求包含不足或无效的数据/状态而无法检索编码值。
</dd>
</dl> </li>
</ul> <a name="createExtendedResponse-java.lang.String-byte:A-int-int-">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>createExtendedResponse</h4> <pre><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a> createExtendedResponse(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> id,
byte[] berValue,
int offset,
int length)
throws <a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></pre>
<div class="block">
<span>创建与此请求对应的响应对象。</span>
<p> <span>服务提供商将扩展操作请求发送到LDAP服务器后将从服务器收到响应。</span> <span>如果操作失败提供程序将抛出NamingException。</span> <span>如果操作成功,则提供者将使用响应中返回的数据来调用此方法。</span> <span>此方法的作用是返回一个实现扩展操作请求的ExtendedResponse接口的类。</span> </p>
<p> <span>例如启动TLS扩展请求类将需要知道如何处理启动TLS扩展响应。</span> <span>它通过创建一个实现ExtendedResponse的类来实现。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>id</code> - 响应控件的可能的空对象标识符。
</dd>
<dd>
<span><code>berValue</code> - 响应控制的可能为零的ASN.1 BER编码值。</span>
<span>这是包含标签和响应值长度的原始BER字节。</span>
<span>它不包括响应OID。</span>
</dd>
<dd>
<code>offset</code> - 在berValue中使用的字节的起始位置。
</dd>
<dd>
<code>length</code> - 要使用的berValue中的字节数。
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
非空对象。
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../javax/naming/NamingException.html" title="class in javax.naming">NamingException</a></code> - 如果由于错误而无法创建扩展响应。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="javax.naming.ldap中的接口"><code>ExtendedResponse</code></a></span>
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>