mirror of
https://github.com/fofolee/uTools-Manuals.git
synced 2025-07-08 02:32:46 +08:00
716 lines
40 KiB
HTML
716 lines
40 KiB
HTML
<div class="header">
|
||
<div class="subTitle">
|
||
compact3
|
||
</div>
|
||
<div class="subTitle">
|
||
javax.security.sasl
|
||
</div>
|
||
<h2 class="title" title="Class Sasl">Class Sasl</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.security.sasl.Sasl</li>
|
||
</ul> </li>
|
||
</ul>
|
||
<div class="description">
|
||
<ul class="blockList">
|
||
<li class="blockList">
|
||
<hr/> <br/> <pre>public class <span class="typeNameLabel">Sasl</span>
|
||
extends <a href="../../../java/lang/Object.html" title="class in java.lang">Object</a></pre>
|
||
<div class="block">
|
||
<span>用于创建SASL客户端和服务器的静态类。</span>
|
||
<p> <span>此类定义了如何定位,加载和实例化SASL客户端和服务器的策略。</span> </p>
|
||
<p> <span>例如,应用程序或库通过执行以下操作获取SASL客户端:</span> </p>
|
||
<blockquote>
|
||
<span><pre>
|
||
SaslClient sc = Sasl.createSaslClient(mechanisms,
|
||
authorizationId, protocol, serverName, props, callbackHandler);
|
||
</pre></span>
|
||
</blockquote>
|
||
<span>然后可以继续使用实例来创建身份验证连接。</span>
|
||
<p> <span>类似地,服务器通过使用如下所示的代码获取SASL服务器:</span> </p>
|
||
<blockquote>
|
||
<span><pre>
|
||
SaslServer ss = Sasl.createSaslServer(mechanism,
|
||
protocol, serverName, props, callbackHandler);
|
||
</pre></span>
|
||
</blockquote>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="simpleTagLabel">从以下版本开始:</span>
|
||
</dt>
|
||
<dd>
|
||
1.5
|
||
</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/security/sasl/Sasl.html#BOUND_SERVER_NAME">BOUND_SERVER_NAME</a></span></code>
|
||
<div class="block">
|
||
指定未绑定服务器的绑定服务器名称的属性的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#CREDENTIALS">CREDENTIALS</a></span></code>
|
||
<div class="block">
|
||
指定要使用的凭据的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#MAX_BUFFER">MAX_BUFFER</a></span></code>
|
||
<div class="block">
|
||
它指定的字节接收缓冲器的最大大小的属性的名称
|
||
<code>SaslClient</code> /
|
||
<code>SaslServer</code> 。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#POLICY_FORWARD_SECRECY">POLICY_FORWARD_SECRECY</a></span></code>
|
||
<div class="block">
|
||
指定是否需要在会话之间实现向前保密的机制的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#POLICY_NOACTIVE">POLICY_NOACTIVE</a></span></code>
|
||
<div class="block">
|
||
指定是否允许容易受到活动(非字典)攻击的机制的属性的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#POLICY_NOANONYMOUS">POLICY_NOANONYMOUS</a></span></code>
|
||
<div class="block">
|
||
指定是否允许接受匿名登录的机制的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#POLICY_NODICTIONARY">POLICY_NODICTIONARY</a></span></code>
|
||
<div class="block">
|
||
指定是否允许容易受被动字典攻击的机制的属性的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#POLICY_NOPLAINTEXT">POLICY_NOPLAINTEXT</a></span></code>
|
||
<div class="block">
|
||
指定是否允许容易受到简单的被动攻击的机制(例如“PLAIN”)的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#POLICY_PASS_CREDENTIALS">POLICY_PASS_CREDENTIALS</a></span></code>
|
||
<div class="block">
|
||
指定是否需要传递客户端凭据的机制的属性的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#QOP">QOP</a></span></code>
|
||
<div class="block">
|
||
指定要使用的保护质量的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#RAW_SEND_SIZE">RAW_SEND_SIZE</a></span></code>
|
||
<div class="block">
|
||
一个属性的名称,指定原始发送缓冲区的最大大小(以字节为单位),
|
||
<code>SaslClient</code>
|
||
<code>SaslServer</code> 。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#REUSE">REUSE</a></span></code>
|
||
<div class="block">
|
||
指定是否重新使用以前验证的会话信息的属性的名称。
|
||
</div> </td>
|
||
</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/security/sasl/Sasl.html#SERVER_AUTH">SERVER_AUTH</a></span></code>
|
||
<div class="block">
|
||
指定服务器是否必须向客户端进行身份验证的属性的名称。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor">
|
||
<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/security/sasl/Sasl.html#STRENGTH">STRENGTH</a></span></code>
|
||
<div class="block">
|
||
指定要使用的密码强度的属性的名称。
|
||
</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="t1"><span><a href="javascript:show(1);">静态方法</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>static <a href="../../../javax/security/sasl/SaslClient.html" title="interface in javax.security.sasl">SaslClient</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/security/sasl/Sasl.html#createSaslClient-java.lang.String:A-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-">createSaslClient</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] mechanisms, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> authorizationId, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> protocol, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> serverName, <a href="../../../java/util/Map.html" title="interface in java.util">Map</a><<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?> props, <a href="../../../javax/security/auth/callback/CallbackHandler.html" title="interface in javax.security.auth.callback">CallbackHandler</a> cbh)</code>
|
||
<div class="block">
|
||
创建
|
||
<code>SaslClient</code>使用所提供的参数。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor" id="i1">
|
||
<td class="colFirst"><code>static <a href="../../../javax/security/sasl/SaslServer.html" title="interface in javax.security.sasl">SaslServer</a></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/security/sasl/Sasl.html#createSaslServer-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-">createSaslServer</a></span>(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> mechanism, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> protocol, <a href="../../../java/lang/String.html" title="class in java.lang">String</a> serverName, <a href="../../../java/util/Map.html" title="interface in java.util">Map</a><<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?> props, <a href="../../../javax/security/auth/callback/CallbackHandler.html" title="interface in javax.security.auth.callback">CallbackHandler</a> cbh)</code>
|
||
<div class="block">
|
||
创建一个
|
||
<code>SaslServer</code>指定机制。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="altColor" id="i2">
|
||
<td class="colFirst"><code>static <a href="../../../java/util/Enumeration.html" title="interface in java.util">Enumeration</a><<a href="../../../javax/security/sasl/SaslClientFactory.html" title="interface in javax.security.sasl">SaslClientFactory</a>></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/security/sasl/Sasl.html#getSaslClientFactories--">getSaslClientFactories</a></span>()</code>
|
||
<div class="block">
|
||
获得已知工厂的列举,生产
|
||
<code>SaslClient</code> 。
|
||
</div> </td>
|
||
</tr>
|
||
<tr class="rowColor" id="i3">
|
||
<td class="colFirst"><code>static <a href="../../../java/util/Enumeration.html" title="interface in java.util">Enumeration</a><<a href="../../../javax/security/sasl/SaslServerFactory.html" title="interface in javax.security.sasl">SaslServerFactory</a>></code></td>
|
||
<td class="colLast"><code><span class="memberNameLink"><a href="../../../javax/security/sasl/Sasl.html#getSaslServerFactories--">getSaslServerFactories</a></span>()</code>
|
||
<div class="block">
|
||
获得已知工厂的列举,生产
|
||
<code>SaslServer</code> 。
|
||
</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="QOP">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>QOP</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> QOP</pre>
|
||
<div class="block">
|
||
<span>指定要使用的保护质量的属性的名称。</span>
|
||
<span>该属性包含客户端或服务器愿意支持的以逗号分隔的保护值质量列表。</span>
|
||
<span>qop值是其中之一</span>
|
||
<ul>
|
||
<li> <span><code>"auth"</code> - 仅认证</span> </li>
|
||
<li> <span><code>"auth-int"</code> - 认证加完整性保护</span> </li>
|
||
<li> <span><code>"auth-conf"</code> - 认证加完整性和机密性保护</span> </li>
|
||
</ul>
|
||
<span>列表的顺序指定客户端或服务器的首选顺序。</span>
|
||
<span>如果此属性不存在,则默认qop为<code>"auth"</code> 。</span>
|
||
<span>该常数的值为<code>"javax.security.sasl.qop"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.QOP">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="STRENGTH">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>STRENGTH</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> STRENGTH</pre>
|
||
<div class="block">
|
||
<span>指定要使用的密码强度的属性的名称。</span>
|
||
<span>该属性包含客户端或服务器愿意支持的密码强度值的逗号分隔的有序列表。</span>
|
||
<span>强度值是其中之一</span>
|
||
<ul>
|
||
<li> <code>"low"</code> </li>
|
||
<li> <code>"medium"</code> </li>
|
||
<li> <code>"high"</code> </li>
|
||
</ul>
|
||
<span>列表的顺序指定客户端或服务器的首选顺序。</span>
|
||
<span>实现应允许配置这些值的含义。</span>
|
||
<span>应用程序可以使用具有JCE感知机制的Java加密扩展(JCE)来控制与强度值匹配的密码套件的选择。</span>
|
||
<br/>
|
||
<span>如果此属性不存在,默认强度为<code>"high,medium,low"</code> 。</span>
|
||
<span>该常数的值为<code>"javax.security.sasl.strength"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.STRENGTH">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="SERVER_AUTH">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>SERVER_AUTH</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> SERVER_AUTH</pre>
|
||
<div class="block">
|
||
<span>指定服务器是否必须向客户端进行身份验证的属性的名称。</span>
|
||
<span>如果服务器必须验证客户端,该属性包含<code>"true"</code> ;</span>
|
||
<span><code>"false"</code>否则。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.server.authentication"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.SERVER_AUTH">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="BOUND_SERVER_NAME">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>BOUND_SERVER_NAME</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> BOUND_SERVER_NAME</pre>
|
||
<div class="block">
|
||
<span>指定未绑定服务器的绑定服务器名称的属性的名称。</span>
|
||
<span>服务器是通过设置作为未结合的服务器创建<code>serverName</code>在参数<a href="../../../javax/security/sasl/Sasl.html#createSaslServer-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-"><code>createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)</code></a>为空。</span>
|
||
<span>该属性在认证交换完成后包含绑定的主机名。</span>
|
||
<span>它仅在服务器端可用。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.bound.server.name"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.BOUND_SERVER_NAME">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="MAX_BUFFER">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>MAX_BUFFER</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> MAX_BUFFER</pre>
|
||
<div class="block">
|
||
<span>一个属性的名称,指定接收缓冲区的最大大小(以字节为<code>SaslClient</code> ) <code>SaslServer</code> 。</span>
|
||
<span>该属性包含整数的字符串表示形式。</span>
|
||
<br/>
|
||
<span>如果此属性不存在,则默认大小由机制定义。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.maxbuffer"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.MAX_BUFFER">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="RAW_SEND_SIZE">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>RAW_SEND_SIZE</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> RAW_SEND_SIZE</pre>
|
||
<div class="block">
|
||
<span>一个属性的名称,指定原始发送缓冲区的最大大小(以字节为<code>SaslClient</code> ) <code>SaslServer</code> 。</span>
|
||
<span>该属性包含整数的字符串表示形式。</span>
|
||
<span>在验证交换期间,客户端和服务器之间协商此属性的值。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.rawsendsize"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.RAW_SEND_SIZE">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="REUSE">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>REUSE</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> REUSE</pre>
|
||
<div class="block">
|
||
<span>指定是否重新使用以前验证的会话信息的属性的名称。</span>
|
||
<span>如果机制实现可能尝试重用以前验证的会话信息,该属性包含“true”;</span>
|
||
<span>如果实现不能重复使用以前验证的会话信息,则它包含“false”。</span>
|
||
<span>“真实”的设置仅作为一个提示:它不一定需要实际的重用,因为重用可能不可能,原因有很多,包括但不限于缺乏对重用的机制支持,可重用信息的到期,同侪拒绝支持重用。</span>
|
||
<span>属性的默认值为“false”。</span>
|
||
<span>该常量的值为“javax.security.sasl.reuse”。</span>
|
||
<span>请注意,必须提供创建SASL客户端/服务器实例所需的所有其他参数和属性,而不管此属性是否已提供。</span>
|
||
<span>也就是说,您不能提供任何少于预期重用的信息。</span>
|
||
<span>支持重用的机制实现可能允许自定义其实现,例如高速缓存大小,超时和可重用性的标准。</span>
|
||
<span>这样的定制是依赖于实现的。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.REUSE">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_NOPLAINTEXT">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_NOPLAINTEXT</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_NOPLAINTEXT</pre>
|
||
<div class="block">
|
||
<span>指定是否允许容易受到简单的被动攻击的机制(例如“PLAIN”)的属性的名称。</span>
|
||
<span>如果<code>"true"</code>这样的机制,该属性包含"true";</span>
|
||
<span><code>"false"</code>如果允许这样的机制。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.noplaintext"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_NOPLAINTEXT">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_NOACTIVE">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_NOACTIVE</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_NOACTIVE</pre>
|
||
<div class="block">
|
||
<span>指定是否允许容易受到活动(非字典)攻击的机制的属性的名称。</span>
|
||
<span>该属性包含<code>"true"</code>如果易受主动攻击的机制是不允许的;</span>
|
||
<span><code>"false"</code>如果这样的机制是允许的。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.noactive"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_NOACTIVE">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_NODICTIONARY">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_NODICTIONARY</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_NODICTIONARY</pre>
|
||
<div class="block">
|
||
<span>指定是否允许容易受被动字典攻击的机制的属性的名称。</span>
|
||
<span>如果不允许易受字典攻击的<code>"true"</code>则属性包含"true";</span>
|
||
<span><code>"false"</code>如果这样的机制是允许的。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.nodictionary"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_NODICTIONARY">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_NOANONYMOUS">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_NOANONYMOUS</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_NOANONYMOUS</pre>
|
||
<div class="block">
|
||
<span>指定是否允许接受匿名登录的机制的属性的名称。</span>
|
||
<span>该属性包含<code>"true"</code>如果接受匿名登录的机制是不允许的;</span>
|
||
<span><code>"false"</code>如果这样的机制是允许的。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.noanonymous"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_NOANONYMOUS">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_FORWARD_SECRECY">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_FORWARD_SECRECY</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_FORWARD_SECRECY</pre>
|
||
<div class="block">
|
||
<span>指定是否需要在会话之间实现向前保密的机制的属性的名称。</span>
|
||
<span>转发保密意味着,打破一个会话将不会自动提供用于打破未来会话的信息。</span>
|
||
<span>如果需要在会话之间实现向前保密的<code>"true"</code>则该属性包含<code>"true"</code> ;</span>
|
||
<span><code>"false"</code>如果不需要这样的机制。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.forward"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_FORWARD_SECRECY">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="POLICY_PASS_CREDENTIALS">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>POLICY_PASS_CREDENTIALS</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> POLICY_PASS_CREDENTIALS</pre>
|
||
<div class="block">
|
||
<span>指定是否需要传递客户端凭据的机制的属性的名称。</span>
|
||
<span>如果需要通过客户端凭据的<code>"true"</code>则该属性包含<code>"true"</code> ;</span>
|
||
<span><code>"false"</code>如果不需要这样的机制。</span>
|
||
<span>默认值为<code>"false"</code> 。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.policy.credentials"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.POLICY_PASS_CREDENTIALS">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="CREDENTIALS">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>CREDENTIALS</h4> <pre>public static final <a href="../../../java/lang/String.html" title="class in java.lang">String</a> CREDENTIALS</pre>
|
||
<div class="block">
|
||
<span>指定要使用的凭据的属性的名称。</span>
|
||
<span>该属性包含一个机制特定的Java凭据对象。</span>
|
||
<span>机制实现可以检查此属性的值,以确定它是否是它们支持的类。</span>
|
||
<span>该属性可用于向支持委托认证的机制提供凭据。</span>
|
||
<br/>
|
||
<span>该常数的值为<code>"javax.security.sasl.credentials"</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../constant-values.html#javax.security.sasl.Sasl.CREDENTIALS">Constant Field Values</a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
<!-- ============ METHOD DETAIL ========== -->
|
||
<ul class="blockList">
|
||
<li class="blockList"><a name="method.detail">
|
||
<!-- --> </a> <h3>方法详细信息</h3> <a name="createSaslClient-java.lang.String:A-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>createSaslClient</h4> <pre>public static <a href="../../../javax/security/sasl/SaslClient.html" title="interface in javax.security.sasl">SaslClient</a> createSaslClient(<a href="../../../java/lang/String.html" title="class in java.lang">String</a>[] mechanisms,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> authorizationId,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> protocol,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> serverName,
|
||
<a href="../../../java/util/Map.html" title="interface in java.util">Map</a><<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?> props,
|
||
<a href="../../../javax/security/auth/callback/CallbackHandler.html" title="interface in javax.security.auth.callback">CallbackHandler</a> cbh)
|
||
throws <a href="../../../javax/security/sasl/SaslException.html" title="class in javax.security.sasl">SaslException</a></pre>
|
||
<div class="block">
|
||
<span>创建<code>SaslClient</code>使用所提供的参数。</span>
|
||
<span>此方法使用<a href="../../../../technotes/guides/security/crypto/CryptoSpec.html#Provider">JCA Security Provider Framework</a> ,在“Java加密体系结构API规范与参考”中所述,用于定位和选择<code>SaslClient</code>实现。</span>
|
||
<span>首先,它从“SaslClientFactory”服务和指定的SASL机制的注册安全提供程序获取<code>SaslClientFactory</code>实例的有序列表。</span>
|
||
<span>然后它在列表上的每个工厂实例上调用<code>createSaslClient()</code> ,直到生成一个非空的<code>SaslClient</code>实例。</span>
|
||
<span>它返回非空值<code>SaslClient</code>实例,如果搜索无法生成非空值<code>SaslClient</code>实例,则返回null。</span>
|
||
<p> <span>SaslClientFactory的安全提供程序向表单的JCA Security Provider Framework键注册</span> <br/> <span><code>SaslClientFactory.</code> <em><code>mechanism_name</code></em></span> <br/> <span>和值为javax.security.sasl.SaslClientFactory的<code>javax.security.sasl.SaslClientFactory</code>类的名称。</span> <span>例如,一个包含工厂类, <code>com.wiz.sasl.digest.ClientFactory</code> ,支持“DIGEST-MD5”机制的提供商将注册以下条目与JCA: <code>SaslClientFactory.DIGEST-MD5 com.wiz.sasl.digest.ClientFactory</code></span> </p>
|
||
<p> <span>有关如何安装和配置安全性服务提供程序的信息,请参阅“Java加密体系结构API规范和参考”。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code>mechanisms</code> - 要尝试的机制名称的非空列表。</span>
|
||
<span>每个都是SASA机制的IANA注册名称。</span>
|
||
<span>(例如“GSSAPI”,“CRAM-MD5”)。</span>
|
||
</dd>
|
||
<dd>
|
||
<span><code>authorizationId</code> - 用于授权的可能无效的协议相关标识。</span>
|
||
<span>如果为空或为空,则服务器从客户端的身份验证凭据中导出授权标识。</span>
|
||
<span>当SASL认证成功完成时,指定的实体被授予访问权限。</span>
|
||
</dd>
|
||
<dd>
|
||
<code>protocol</code> - 正在执行身份验证的协议的非空字符串名称(例如,“ldap”)。
|
||
</dd>
|
||
<dd>
|
||
<code>serverName</code> - 要验证的服务器的非空的全限定主机名。
|
||
</dd>
|
||
<dd>
|
||
<span><code>props</code> - 用于选择SASL机制并配置所选机制的认证交换的可能的空属性集。</span>
|
||
<span>例如,如果<code>props</code>包含值为<code>"true"</code>的<code>Sasl.POLICY_NOPLAINTEXT</code>属性,则所选择的SASL机制不能容易受到简单的普通被动攻击。</span>
|
||
<span>除了在此类中声明的标准属性之外,还可以包括其他可能机制特定的属性。</span>
|
||
<span>与所选机制无关的属性将被忽略,包括具有非String键的任何地图条目。</span>
|
||
</dd>
|
||
<dd>
|
||
<span><code>cbh</code> - SASL机制使用的可能的空回调处理程序,以从应用程序/库获取进一步的信息来完成认证。</span>
|
||
<span>例如,SASL机制可能需要来自呼叫者的身份验证ID,密码和领域。</span>
|
||
<span>认证ID是通过使用所请求的<code>NameCallback</code> 。</span>
|
||
<span>使用<code>PasswordCallback</code>密码。</span>
|
||
<span>该领域是通过使用要求<code>RealmChoiceCallback</code> ,如果有选择,领域列表,并通过使用<code>RealmCallback</code>如果必须输入领域。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>可能null <code>SaslClient</code>使用提供的<code>SaslClient</code>创建。</span>
|
||
<span>如果为null,找不到<code>SaslClientFactory</code>就会产生一个。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../javax/security/sasl/SaslException.html" title="class in javax.security.sasl">SaslException</a></code> - 如果由于错误而无法创建
|
||
<code>SaslClient</code> 。
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="createSaslServer-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>createSaslServer</h4> <pre>public static <a href="../../../javax/security/sasl/SaslServer.html" title="interface in javax.security.sasl">SaslServer</a> createSaslServer(<a href="../../../java/lang/String.html" title="class in java.lang">String</a> mechanism,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> protocol,
|
||
<a href="../../../java/lang/String.html" title="class in java.lang">String</a> serverName,
|
||
<a href="../../../java/util/Map.html" title="interface in java.util">Map</a><<a href="../../../java/lang/String.html" title="class in java.lang">String</a>,?> props,
|
||
<a href="../../../javax/security/auth/callback/CallbackHandler.html" title="interface in javax.security.auth.callback">CallbackHandler</a> cbh)
|
||
throws <a href="../../../javax/security/sasl/SaslException.html" title="class in javax.security.sasl">SaslException</a></pre>
|
||
<div class="block">
|
||
<span>创建一个<code>SaslServer</code>指定机制。</span>
|
||
<span>此方法使用<a href="../../../../technotes/guides/security/crypto/CryptoSpec.html#Provider">JCA Security Provider Framework</a> ,在“Java加密体系结构API规范与参考”中所述,用于定位和选择<code>SaslServer</code>实现。</span>
|
||
<span>首先,它从“SaslServerFactory”服务和指定机制的注册安全提供程序获取<code>SaslServerFactory</code>实例的有序列表。</span>
|
||
<span>然后它在列表上的每个工厂实例上调用<code>createSaslServer()</code> ,直到生成一个非空值<code>SaslServer</code>实例。</span>
|
||
<span>它返回非空值<code>SaslServer</code>实例,如果搜索无法生成非空值<code>SaslServer</code>实例,则返回null。</span>
|
||
<p> <span>SaslServerFactory的安全提供程序向表单的JCA Security Provider Framework键注册</span> <br/> <span><code>SaslServerFactory.</code> <em><code>mechanism_name</code></em></span> <br/> <span>和值为javax.security.sasl.SaslServerFactory的<code>javax.security.sasl.SaslServerFactory</code>类的名称。</span> <span>例如,一个包含工厂类, <code>com.wiz.sasl.digest.ServerFactory</code> ,支持“DIGEST-MD5”机制的提供商将注册以下条目与JCA: <code>SaslServerFactory.DIGEST-MD5 com.wiz.sasl.digest.ServerFactory</code></span> </p>
|
||
<p> <span>有关如何安装和配置安全性服务提供程序的信息,请参阅“Java加密体系结构API规范和参考”。</span> </p>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="paramLabel">参数</span>
|
||
</dt>
|
||
<dd>
|
||
<span><code>mechanism</code> - 非空机制名称。</span>
|
||
<span>它必须是IANA注册的SASL机制的名称。</span>
|
||
<span>(例如“GSSAPI”,“CRAM-MD5”)。</span>
|
||
</dd>
|
||
<dd>
|
||
<code>protocol</code> - 正在执行身份验证的协议的非空字符串名称(例如,“ldap”)。
|
||
</dd>
|
||
<dd>
|
||
<span><code>serverName</code> - 服务器的标准主机名,如果服务器未绑定到任何特定主机名,则为null。</span>
|
||
<span>如果机制不允许未绑定的服务器,则会抛出<code>SaslException</code> 。</span>
|
||
</dd>
|
||
<dd>
|
||
<span><code>props</code> - 用于选择SASL机制并配置所选机制的认证交换的可能的空属性集。</span>
|
||
<span>例如,如果<code>props</code>包含值为<code>"true"</code>的<code>Sasl.POLICY_NOPLAINTEXT</code>属性,则所选择的SASL机制不能容易受到简单的普通被动攻击。</span>
|
||
<span>除了在此类中声明的标准属性之外,还可以包括其他可能机制特定的属性。</span>
|
||
<span>与所选机制无关的属性将被忽略,包括具有非String键的任何地图条目。</span>
|
||
</dd>
|
||
<dd>
|
||
<span><code>cbh</code> - SASL机制使用的可能的空回调处理程序,以从应用程序/库获取进一步的信息来完成身份验证。</span>
|
||
<span>例如,SASL机制可能需要来自呼叫者的身份验证ID,密码和领域。</span>
|
||
<span>认证ID是通过使用所请求的<code>NameCallback</code> 。</span>
|
||
<span>使用<code>PasswordCallback</code>密码。</span>
|
||
<span>该领域是通过使用要求<code>RealmChoiceCallback</code> ,如果有选择,领域列表,并通过使用<code>RealmCallback</code>如果必须输入领域。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
<span>可能null <code>SaslServer</code>使用提供的<code>SaslServer</code>创建。</span>
|
||
<span>如果为null,找不到<code>SaslServerFactory</code>就会产生一个。</span>
|
||
</dd>
|
||
<dt>
|
||
<span class="throwsLabel">异常</span>
|
||
</dt>
|
||
<dd>
|
||
<code><a href="../../../javax/security/sasl/SaslException.html" title="class in javax.security.sasl">SaslException</a></code> - 如果由于错误而无法创建
|
||
<code>SaslServer</code> 。
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="getSaslClientFactories--">
|
||
<!-- --> </a>
|
||
<ul class="blockList">
|
||
<li class="blockList"> <h4>getSaslClientFactories</h4> <pre>public static <a href="../../../java/util/Enumeration.html" title="interface in java.util">Enumeration</a><<a href="../../../javax/security/sasl/SaslClientFactory.html" title="interface in javax.security.sasl">SaslClientFactory</a>> getSaslClientFactories()</pre>
|
||
<div class="block">
|
||
<span>获得已知工厂的列举,生产<code>SaslClient</code> 。</span>
|
||
<span>该方法使用与createSaslClient()相同的算法来定位<code>createSaslClient()</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
已知工厂生产SaslClient的非空
|
||
<code>SaslClient</code> 。
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../javax/security/sasl/Sasl.html#createSaslClient-java.lang.String:A-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-"><code>createSaslClient(java.lang.String[], java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)</code></a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> <a name="getSaslServerFactories--">
|
||
<!-- --> </a>
|
||
<ul class="blockListLast">
|
||
<li class="blockList"> <h4>getSaslServerFactories</h4> <pre>public static <a href="../../../java/util/Enumeration.html" title="interface in java.util">Enumeration</a><<a href="../../../javax/security/sasl/SaslServerFactory.html" title="interface in javax.security.sasl">SaslServerFactory</a>> getSaslServerFactories()</pre>
|
||
<div class="block">
|
||
<span>获得已知工厂的列举,生产<code>SaslServer</code> 。</span>
|
||
<span>该方法使用与createSaslServer()相同的算法来定位<code>createSaslServer()</code> 。</span>
|
||
</div>
|
||
<dl>
|
||
<dt>
|
||
<span class="returnLabel">结果</span>
|
||
</dt>
|
||
<dd>
|
||
已知工厂生产SaslServer的
|
||
<code>SaslServer</code> 。
|
||
</dd>
|
||
<dt>
|
||
<span class="seeLabel">另请参见:</span>
|
||
</dt>
|
||
<dd>
|
||
<a href="../../../javax/security/sasl/Sasl.html#createSaslServer-java.lang.String-java.lang.String-java.lang.String-java.util.Map-javax.security.auth.callback.CallbackHandler-"><code>createSaslServer(java.lang.String, java.lang.String, java.lang.String, java.util.Map<java.lang.String, ?>, javax.security.auth.callback.CallbackHandler)</code></a>
|
||
</dd>
|
||
</dl> </li>
|
||
</ul> </li>
|
||
</ul> </li>
|
||
</ul>
|
||
</div>
|
||
</div> |