模块  java.naming
软件包  javax.naming.ldap

Class StartTlsRequest

  • 实现的所有接口
    SerializableExtendedRequest

    public class StartTlsRequest
    extends Object
    implements ExtendedRequest
    此类实现StartvLS的LDAPv3扩展请求,如Lightweight Directory Access Protocol (v3): Extension for Transport Layer Security中所定义.StartTLS的对象标识符为1.3.6.1.4.1.1466.20037,并且未定义扩展请求值。

    StartTlsRequest / StartTlsResponse用来建立在具有在其上JNDI上下文相关联的现有的LDAP连接的TLS连接extendedOperation()被调用。 通常,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;
     
    从以下版本开始:
    1.4
    另请参见:
    StartTlsResponseSerialized Form
    • 字段详细信息

      • OID

        public static final String OID
        StartTLS扩展请求的已分配对象标识符为1.3.6.1.4.1.1466.20037。
        另请参见:
        常数字段值
    • 构造方法详细信息

      • StartTlsRequest

        public StartTlsRequest()
        构造一个StartTLS扩展请求。
    • 方法详细信息

      • getID

        public String getID()
        检索StartTLS请求的对象标识符字符串。
        Specified by:
        getID在界面 ExtendedRequest
        结果
        对象标识符字符串“1.3.6.1.4.1.1466.20037”。
      • getEncodedValue

        public byte[] getEncodedValue()
        检索StartTLS请求的ASN.1 BER编码值。 由于请求没有定义的值,因此始终返回null。
        Specified by:
        getEncodedValue接口 ExtendedRequest
        结果
        空值。
      • 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。

        Specified by:
        createExtendedResponse ,界面 ExtendedRequest
        参数
        id - 扩展响应的对象标识符。 其值必须为“1.3.6.1.4.1.1466.20037”或null。 两个值都是等价的。
        berValue - 扩展响应的可能为空的ASN.1 BER编码值。 这是原始BER字节,包括标记和响应值的长度。 它不包括响应OID。 其值被忽略,因为预期Start TLS响应不包含任何响应值。
        offset - berValue中要使用的字节的起始位置。 其值被忽略,因为预期Start TLS响应不包含任何响应值。
        length - 要使用的berValue中的字节数。 其值被忽略,因为预期Start TLS响应不包含任何响应值。
        结果
        StartTLS扩展响应对象。
        异常
        NamingException - 如果在创建StartTLS扩展响应对象时遇到命名异常。
        另请参见:
        ExtendedResponse