Module java.naming

Class StartTlsRequest

java.lang.Object
javax.naming.ldap.StartTlsRequest
所有已实现的接口:
Serializable, ExtendedRequest

public class StartTlsRequest extends Object implements ExtendedRequest
该类实现了LDAPv3中定义的StartTLS的扩展请求,定义在轻量级目录访问协议(v3):传输层安全性扩展中。StartTLS的对象标识符为1.3.6.1.4.1.1466.20037,没有定义扩展请求值。

StartTlsRequest/StartTlsResponse用于在调用extendedOperation()的JNDI上下文关联的现有LDAP连接上建立TLS连接。通常,JNDI程序使用这些类如下。

 import javax.naming.ldap.*;

 // 打开LDAP关联
 LdapContext ctx = new InitialLdapContext();

 // 执行StartTLS扩展操作
 StartTlsResponse tls =
     (StartTlsResponse) ctx.extendedOperation(new StartTlsRequest());

 // 打开TLS连接(在现有LDAP关联上)并获取协商的TLS会话详细信息:密码套件、对等证书等
 SSLSession session = tls.negotiate();

 // ... 使用ctx执行受保护的LDAP操作

 // 关闭TLS连接(恢复到底层LDAP关联)
 tls.close();

 // ... 使用ctx执行未受保护的LDAP操作

 // 关闭LDAP关联
 ctx.close;
 
自版本:
1.4
参见:
  • Field Details

    • OID

      public static final String OID
      StartTLS扩展请求的分配对象标识符为1.3.6.1.4.1.1466.20037。
      参见:
  • Constructor Details

    • StartTlsRequest

      public StartTlsRequest()
      构造一个StartTLS扩展请求。
  • Method Details

    • getID

      public String getID()
      检索StartTLS请求的对象标识符字符串。
      指定者:
      getID 在接口 ExtendedRequest
      返回:
      对象标识符字符串为"1.3.6.1.4.1.1466.20037"。
    • getEncodedValue

      public byte[] getEncodedValue()
      检索StartTLS请求的ASN.1 BER编码值。由于请求没有定义值,因此始终返回null。
      指定者:
      getEncodedValue 在接口 ExtendedRequest
      返回:
      null值。
    • createExtendedResponse

      public ExtendedResponse createExtendedResponse(String id, byte[] berValue, int offset, int length) throws NamingException
      创建与LDAP StartTLS扩展请求对应的扩展响应对象。

      结果必须是StartTlsResponse的具体子类,并且必须具有一个公共的无参数构造函数。

      此方法通过查找具有以下名称的配置文件来定位实现类:

      META-INF/services/javax.naming.ldap.StartTlsResponse
      配置文件及其对应的实现类必须对调用线程的上下文类加载器可访问。

      每个配置文件应包含一个完全限定的类名列表,每行一个。忽略每个名称周围的空格和制表符,以及空行。注释字符为'#'0x23);在每行上,第一个注释字符后的所有字符都将被忽略。文件必须以UTF-8编码。

      此方法将从配置文件收集的类名列表中成功加载和实例化的第一个实现类的实例。此方法使用调用线程的上下文类加载器来查找配置文件并加载实现类。

      如果无法以此方式找到任何类,此方法将使用特定于实现的方式来定位实现。如果找不到任何实现,将抛出NamingException。

      指定者:
      createExtendedResponse 在接口 ExtendedRequest
      参数:
      id - 扩展响应的对象标识符。其值必须为"1.3.6.1.4.1.1466.20037"或null。两个值是等效的。
      berValue - 可能为null的扩展响应的ASN.1 BER编码值。这是包含响应值的原始BER字节,包括响应值的标记和长度。它不包括响应OID。其值将被忽略,因为不希望Start TLS响应包含任何响应值。
      offset - berValue中要使用的字节的起始位置。其值将被忽略,因为不希望Start TLS响应包含任何响应值。
      length - 要使用的berValue中的字节数。其值将被忽略,因为不希望Start TLS响应包含任何响应值。
      返回:
      StartTLS扩展响应对象。
      抛出:
      NamingException - 如果在创建StartTLS扩展响应对象时遇到命名异常。
      参见: