java.lang.Object javax.naming.ldap.StartTlsRequest
public class StartTlsRequest
此类实现在 Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security 中定义的 StartTLS 的 LDAPv3 扩展请求。 StartTLS 的对象标识符为 1.3.6.1.4.1.1466.20037,没有定义任何扩展请求值。
使用 StartTlsRequest/StartTlsResponse 在与 JNDI 上下文(对该上下文调用 extendedOperation())关联的现有 LDAP 连接上建立 TLS 连接。通常,JNDI 程序使用以下这些类。
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, etc. 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;
StartTlsResponse
,
序列化表格
字段摘要 | |
---|---|
static String |
OID StartTLS 扩展请求的分配对象标识符为 1.3.6.1.4.1.1466.20037。 |
构造方法摘要 | |
---|---|
StartTlsRequest() 构造 StartTLS 扩展请求。 |
方法摘要 | |
---|---|
ExtendedResponse |
createExtendedResponse(String id, byte[] berValue, int offset, int length) 创建与 LDAP StartTLS 扩展请求相对应的扩展响应对象。 |
byte[] |
getEncodedValue() 检索 StartTLS 请求的 ASN.1 BER 编码值。 |
String |
getID() 检索 StartTLS 请求的对象标识符字符串。 |
从类 java.lang.Object 继承的方法 |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
字段详细信息 |
---|
public static final String OID
构造方法详细信息 |
---|
public StartTlsRequest()
方法详细信息 |
---|
public String getID()
ExtendedRequest
中的
getID
public byte[] getEncodedValue()
ExtendedRequest
中的
getEncodedValue
public ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
结果必须为 StartTlsResponse 的具体子类,并且必须具有不带参数的公共构造方法。
此方法通过查找具有以下名称的配置文件来查找实现类:
META-INF/services/javax.naming.ldap.StartTlsResponse配置文件及其相应的实现类对于调用线程的上下文类加载器而言必须是可访问的。
每个配置文件应该包含一个完全限定类名称列表,每行一个类名。忽略各名称周围的空格字符和制表符以及空行。注释字符为 '#' (0x23);将忽略每行第一个注释字符后面的所有字符。文件必须使用 UTF-8 编码。
此方法将返回它能够从类名称列表(通过配置文件收集)成功加载和实例化的第一个实现类的实例。此方法使用调用线程的上下文类加载器查找配置文件和加载实现类。
如果使用此方式找不到任何类,则此方法将使用特定于实现的方式来查找实现。如果一个也找不到,则抛出 NamingException。
ExtendedRequest
中的
createExtendedResponse
id
- 扩展响应的对象标识符。其值必须为 "1.3.6.1.4.1.1466.20037" 或 null。两个值是等价的。
berValue
- 扩展响应的 ASN.1 BER 编码值(可能为 null)。此为原始 BER 字节,包括响应值的标记和长度。它不包括响应 OID。它的值将被忽略,因为不要求 Start TLS 响应包含任何响应值。
offset
- berValue 中要使用的字节的开始位置。它的值将被忽略,因为不要求 Start TLS 响应包含任何响应值。
length
- berValue 中要使用的字节数。它的值将被忽略,因为不要求 Start TLS 响应包含任何响应值。
NamingException
- 如果在创建 StartTLS 扩展响应对象时遇到命名异常。
ExtendedResponse