Module java.naming


module java.naming
定义了Java命名和目录接口(JNDI)API。

可能会被JNDI提供程序支持的常见标准JNDI环境属性在Context中定义和记录。特定的JNDI提供程序实现也可能支持其他环境或系统属性,这些属性是特定于它们的实现的。

实现注意事项:
JDK中默认的LDAP命名服务提供程序实现支持以下特定于实现的环境属性:
  • com.sun.jndi.ldap.connect.timeout
    此属性的值是表示连接超时的整数的字符串表示形式(以毫秒为单位)。如果LDAP提供程序在该期间无法建立连接,则会中止连接尝试。整数应大于零。小于或等于零的整数意味着使用网络协议(即TCP)的超时值。
    如果未指定此属性,则默认值是等待连接建立或直到底层网络超时。
  • com.sun.jndi.ldap.read.timeout
    此属性的值是表示LDAP操作的读取超时的整数的字符串表示形式(以毫秒为单位)。如果LDAP提供程序在该期间无法获得LDAP响应,则会中止读取尝试。整数应大于零。小于或等于零的整数意味着未指定读取超时,这相当于无限期等待响应直到接收到为止。
    如果未指定此属性,则默认值是等待响应直到接收到为止。
  • com.sun.jndi.ldap.tls.cbtype
    此属性的值是要求在SSL/TLS上的LDAP连接中所需的TLS通道绑定类型的字符串表示形式。可能的值是:
    • "tls-server-end-point" - 通道绑定数据是基于TLS服务器证书创建的。

    "tls-unique" TLS通道绑定类型在RFC-5929中指定但不受支持。
    如果未指定此属性,客户端将不向服务器发送通道绑定信息。

JDK中默认的LDAP命名服务提供程序实现支持以下特定于实现的系统属性:

  • com.sun.jndi.ldap.object.trustSerialData
    此系统属性的值是控制从javaSerializedData LDAP属性反序列化Java对象,从javaRemoteLocation LDAP属性重建RMI引用,以及从javaReferenceAddress LDAP属性重建二进制引用地址的布尔值的字符串表示形式。要允许从javaSerializedDatajavaRemoteLocationjavaReferenceAddress属性反序列化或重建Java对象,系统属性值可以设置为true(不区分大小写)。
    如果未指定该属性,则不允许从javaSerializedDatajavaRemoteLocationjavaReferenceAddress属性反序列化Java对象。
  • jdk.jndi.object.factoriesFilter
    此系统属性的值定义了JNDI运行时实现使用的过滤器,用于控制允许实例化由命名/目录系统返回的对象引用的对象工厂类的集合。引用实例命名的工厂类将与此过滤器匹配。过滤器属性支持与jdk.serialFilter相同格式的基于模式的过滤器语法。在过滤器属性中指定的限制模式未使用。此属性也可以指定为安全属性。此属性也受默认JNDI RMI提供程序支持。
    默认值允许由引用实例指定的任何对象工厂类重新创建引用的对象。
  • jdk.jndi.ldap.object.factoriesFilter
    此系统属性的值定义了JDK LDAP提供程序实现使用的过滤器,用于进一步限制允许从LDAP系统返回的对象引用实例化的对象工厂类的集合。首先,引用实例命名的工厂类将与此特定过滤器匹配,然后与全局过滤器匹配。如果这两个过滤器中的任何一个拒绝该工厂类,或者如果它们都不允许该工厂类,则将拒绝该工厂类。过滤器属性支持与jdk.serialFilter相同格式的基于模式的过滤器语法。在过滤器属性中指定的限制模式未使用。
    默认值允许由JDK LDAP提供程序实现提供的任何对象工厂类。
    如果全局ObjectFactoryBuilder未被设置,则此系统属性将用于仅过滤LDAP特定对象工厂。

其他提供程序可能在其模块描述中定义其他属性:

模块图:
java.naming的模块图java.naming的模块图
自JDK版本:
9