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

423 lines
19 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="Class StartTlsResponse">Class StartTlsResponse</h2>
</div><div class="contentContainer">
<ul class="inheritance">
<li><a href="../../../java/lang/Object.html" title="class in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>javax.naming.ldap.StartTlsResponse</li>
</ul> </li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>
All Implemented Interfaces:
</dt>
<dd>
<span><a href="../../../java/io/Serializable.html" title="java.io中的接口">Serializable</a> <a href="../../../javax/naming/ldap/ExtendedResponse.html" title="javax.naming.ldap中的接口">ExtendedResponse</a></span>
</dd>
</dl>
<hr/> <br/> <pre>public abstract class <span class="typeNameLabel">StartTlsResponse</span>
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a>
implements <a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a></pre>
<div class="block">
<span>此类实现了88243284481519中定义的StartTLS的LDAPv3扩展响应<a href="http://www.ietf.org/rfc/rfc2830.txt">。StartTLS</a>的对象标识符为1.3.6.1.4.1.1466.20037,未定义扩展响应值。</span>
<p> <span>启动TLS扩展请求和响应用于建立在与其上<tt>extendedOperation()</tt>被调用JNDI上下文相关联的现有的LDAP连接的TLS连接。</span> <span>通常JNDI程序使用StartTLS扩展请求和响应类如下所示。</span> </p>
<blockquote>
<span><pre>
import javax.naming.ldap.*;
// Open an LDAP association
LdapContext ctx = new InitialLdapContext();
// Perform a StartTLS extended operation
StartTlsResponse tls =
(StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());
// Open a TLS connection (over the existing LDAP association) and get details
// of the negotiated TLS session: cipher suite, peer certificate, ...
SSLSession session = tls.negotiate();
// ... use ctx to perform protected LDAP operations
// Close the TLS connection (revert back to the underlying LDAP association)
tls.close();
// ... use ctx to perform unprotected LDAP operations
// Close the LDAP association
ctx.close;
</pre></span>
</blockquote>
</div>
<dl>
<dt>
<span class="simpleTagLabel">从以下版本开始:</span>
</dt>
<dd>
1.4
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<span><a href="../../../javax/naming/ldap/StartTlsRequest.html" title="javax.naming.ldap中的类"><code>StartTlsRequest</code></a> <a href="../../../serialized-form.html#javax.naming.ldap.StartTlsResponse">Serialized Form</a></span>
</dd>
</dl> </li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- --> </a> <h3>Field Summary</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Field Summary table, listing fields, and an explanation">
<caption>
<span>Fields</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static <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/StartTlsResponse.html#OID">OID</a></span></code>
<div class="block">
StartTLS扩展响应的分配对象标识符为1.3.6.1.4.1.1466.20037。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- --> </a> <h3>构造方法摘要</h3>
<table border="0" cellpadding="3" cellspacing="0" class="memberSummary" summary="Constructor Summary table, listing constructors, and an explanation">
<caption>
<span>构造方法</span>
<span class="tabEnd"> </span>
</caption>
<tbody>
<tr>
<th class="colFirst" scope="col">Modifier</th>
<th class="colLast" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>protected </code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#StartTlsResponse--">StartTlsResponse</a></span>()</code>
<div class="block">
构建一个StartTLS扩展响应。
</div> </td>
</tr>
</tbody>
</table> </li>
</ul>
<!-- ========== 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>
<span class="tableTab" id="t4"><span><a href="javascript:show(8);">具体的方法</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>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#close--">close</a></span>()</code>
<div class="block">
妥善地关闭TLS连接并恢复到底层连接。
</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/StartTlsResponse.html#getEncodedValue--">getEncodedValue</a></span>()</code>
<div class="block">
检索StartTLS响应的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/StartTlsResponse.html#getID--">getID</a></span>()</code>
<div class="block">
检索StartTLS响应的对象标识符字符串。
</div> </td>
</tr>
<tr class="rowColor" id="i3">
<td class="colFirst"><code>abstract <a href="../../../javax/net/ssl/SSLSession.html" title="interface in javax.net.ssl">SSLSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#negotiate--">negotiate</a></span>()</code>
<div class="block">
使用默认的SSL套接字工厂协商TLS会话。
</div> </td>
</tr>
<tr class="altColor" id="i4">
<td class="colFirst"><code>abstract <a href="../../../javax/net/ssl/SSLSession.html" title="interface in javax.net.ssl">SSLSession</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#negotiate-javax.net.ssl.SSLSocketFactory-">negotiate</a></span>(<a href="../../../javax/net/ssl/SSLSocketFactory.html" title="class in javax.net.ssl">SSLSocketFactory</a> factory)</code>
<div class="block">
使用SSL套接字工厂协商TLS会话。
</div> </td>
</tr>
<tr class="rowColor" id="i5">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#setEnabledCipherSuites-java.lang.String:A-">setEnabledCipherSuites</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] suites)</code>
<div class="block">
覆盖在TLS连接上启用的密码套件的默认列表。
</div> </td>
</tr>
<tr class="altColor" id="i6">
<td class="colFirst"><code>abstract void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/naming/ldap/StartTlsResponse.html#setHostnameVerifier-javax.net.ssl.HostnameVerifier-">setHostnameVerifier</a></span>(<a href="../../../javax/net/ssl/HostnameVerifier.html" title="interface in javax.net.ssl">HostnameVerifier</a> verifier)</code>
<div class="block">
设置TLS握手
<tt>完成</tt>后的主机名验证器negotiate(),默认主机名验证失败。
</div> </td>
</tr>
</tbody>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- --> </a> <h3>Methods inherited from class java.lang.<a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></h3> <code><a href="../../../java/lang/Object.html#clone--">clone</a>, <a href="../../../java/lang/Object.html#equals-java.lang.Object-">equals</a>, <a href="../../../java/lang/Object.html#finalize--">finalize</a>, <a href="../../../java/lang/Object.html#getClass--">getClass</a>, <a href="../../../java/lang/Object.html#hashCode--">hashCode</a>, <a href="../../../java/lang/Object.html#notify--">notify</a>, <a href="../../../java/lang/Object.html#notifyAll--">notifyAll</a>, <a href="../../../java/lang/Object.html#toString--">toString</a>, <a href="../../../java/lang/Object.html#wait--">wait</a>, <a href="../../../java/lang/Object.html#wait-long-">wait</a>, <a href="../../../java/lang/Object.html#wait-long-int-">wait</a></code></li>
</ul> </li>
</ul> </li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- --> </a> <h3>字段详细信息</h3> <a name="OID">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>OID</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> OID</pre>
<div class="block">
StartTLS扩展响应的分配对象标识符为1.3.6.1.4.1.1466.20037。
</div>
<dl>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../constant-values.html#javax.naming.ldap.StartTlsResponse.OID">Constant Field Values</a>
</dd>
</dl> </li>
</ul> </li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- --> </a> <h3>构造方法详细信息</h3> <a name="StartTlsResponse--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>StartTlsResponse</h4> <pre>protected StartTlsResponse()</pre>
<div class="block">
<span>构建一个StartTLS扩展响应。</span>
<span>一个具体的子类必须有一个public no-arg构造函数。</span>
</div> </li>
</ul> </li>
</ul>
<!-- ============ 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>public <a href="../../../java/lang/String.html" title="class in java.lang">String</a> getID()</pre>
<div class="block">
检索StartTLS响应的对象标识符字符串。
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../javax/naming/ldap/ExtendedResponse.html#getID--">getID</a></code>在界面
<code><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
对象标识符字符串“1.3.6.1.4.1.1466.20037”。
</dd>
</dl> </li>
</ul> <a name="getEncodedValue--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>getEncodedValue</h4> <pre>public byte[] getEncodedValue()</pre>
<div class="block">
<span>检索StartTLS响应的ASN.1 BER编码值。</span>
<span>由于响应没有定义的值因此始终返回null。</span>
</div>
<dl>
<dt>
<span class="overrideSpecifyLabel">Specified by:</span>
</dt>
<dd>
<code><a href="../../../javax/naming/ldap/ExtendedResponse.html#getEncodedValue--">getEncodedValue</a></code>在接口
<code><a href="../../../javax/naming/ldap/ExtendedResponse.html" title="interface in javax.naming.ldap">ExtendedResponse</a></code>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
空值。
</dd>
</dl> </li>
</ul> <a name="setEnabledCipherSuites-java.lang.String:A-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setEnabledCipherSuites</h4> <pre>public abstract void setEnabledCipherSuites(<a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] suites)</pre>
<div class="block">
<span>覆盖在TLS连接上启用的密码套件的默认列表。</span>
<span>密码套件必须已被<tt>SSLSocketFactory.getSupportedCipherSuites()</tt>列为受支持。</span>
<span>即使启用了套件,仍然可能不会使用它,因为对等体不支持它,或者因为必需的证书(和私钥)不可用。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>suites</code> - 要启用的所有密码套件的名称的非空列表。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#negotiate--"><code>negotiate()</code></a>
</dd>
</dl> </li>
</ul> <a name="setHostnameVerifier-javax.net.ssl.HostnameVerifier-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>setHostnameVerifier</h4> <pre>public abstract void setHostnameVerifier(<a href="../../../javax/net/ssl/HostnameVerifier.html" title="interface in javax.net.ssl">HostnameVerifier</a> verifier)</pre>
<div class="block">
<span>设置TLS握手<tt>完成</tt>后的主机名验证器negotiate(),默认主机名验证失败。</span>
<span><tt>setHostnameVerifier()</tt>必须在<tt>negotiate()</tt>调用之前调用才能生效。</span>
<span>如果在<tt>negotiate()</tt><tt>调用</tt> ,此方法不做任何事情。</span>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<code>verifier</code> - 非空主机名验证器回调。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#negotiate--"><code>negotiate()</code></a>
</dd>
</dl> </li>
</ul> <a name="negotiate--">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>negotiate</h4> <pre>public abstract <a href="../../../javax/net/ssl/SSLSession.html" title="interface in javax.net.ssl">SSLSession</a> negotiate()
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>使用默认的SSL套接字工厂协商TLS会话。</span>
<p> <span>此方法相当于<tt>negotiate(null)</tt></span> </p>
</div>
<dl>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
协商的SSL会话
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果在建立TLS会话时遇到IO错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#setEnabledCipherSuites-java.lang.String:A-"><code>setEnabledCipherSuites(java.lang.String[])</code></a>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#setHostnameVerifier-javax.net.ssl.HostnameVerifier-"><code>setHostnameVerifier(javax.net.ssl.HostnameVerifier)</code></a>
</dd>
</dl> </li>
</ul> <a name="negotiate-javax.net.ssl.SSLSocketFactory-">
<!-- --> </a>
<ul class="blockList">
<li class="blockList"> <h4>negotiate</h4> <pre>public abstract <a href="../../../javax/net/ssl/SSLSession.html" title="interface in javax.net.ssl">SSLSession</a> negotiate(<a href="../../../javax/net/ssl/SSLSocketFactory.html" title="class in javax.net.ssl">SSLSocketFactory</a> factory)
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
<span>使用SSL套接字工厂协商TLS会话。</span>
<p> <span>使用提供的SSL套接字工厂创建SSL套接字并将其附加到现有连接。</span> <span>执行TLS握手并返回协商的会话信息。</span> </p>
<p> <span>如果通过<tt>setEnabledCipherSuites</tt>设置了密码套件那么在TLS握手开始之前它们被启用。</span> </p>
<p> <span>在TLS握手完成后执行主机名验证。</span> <span>默认的主机名验证会根据服务器证书中的主机名信息来匹配服务器的主机名。</span> <span>如果此验证失败,并且没有通过<tt>setHostnameVerifier</tt>设置回调,则协商失败。</span> <span>如果此验证失败并通过<tt>setHostnameVerifier</tt>设置了回调,则回调用于确定协商成功。</span> </p>
<p> <span>如果发生错误则SSL套接字将关闭并引发IOException。</span> <span>底层连接保持不变。</span> </p>
</div>
<dl>
<dt>
<span class="paramLabel">参数</span>
</dt>
<dd>
<span><code>factory</code> - 可能为null的SSL套接字工厂要使用。</span>
<span>如果为空则使用默认的SSL套接字工厂。</span>
</dd>
<dt>
<span class="returnLabel">结果</span>
</dt>
<dd>
协商的SSL会话
</dd>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果在建立TLS会话时遇到IO错误。
</dd>
<dt>
<span class="seeLabel">另请参见:</span>
</dt>
<dd>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#setEnabledCipherSuites-java.lang.String:A-"><code>setEnabledCipherSuites(java.lang.String[])</code></a>
<a href="../../../javax/naming/ldap/StartTlsResponse.html#setHostnameVerifier-javax.net.ssl.HostnameVerifier-"><code>setHostnameVerifier(javax.net.ssl.HostnameVerifier)</code></a>
</dd>
</dl> </li>
</ul> <a name="close--">
<!-- --> </a>
<ul class="blockListLast">
<li class="blockList"> <h4>close</h4> <pre>public abstract void close()
throws <a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></pre>
<div class="block">
妥善地关闭TLS连接并恢复到底层连接。
</div>
<dl>
<dt>
<span class="throwsLabel">异常</span>
</dt>
<dd>
<code><a href="../../../java/io/IOException.html" title="class in java.io">IOException</a></code> - 如果在关闭TLS连接时遇到IO错误
</dd>
</dl> </li>
</ul> </li>
</ul> </li>
</ul>
</div>
</div>