跳到主要内容

JNDI连接属性

本节讨论与JNDI连接相关的JMS属性。

认证方案

此属性指定认证方案,适用于JNDI和数据连接。

  • 支持版本:对于基本和客户端证书认证方案,支持Solace PubSub+ 6.1及以上版本的事件代理。对于Kerberos认证方案,支持Solace PubSub+ 7.0及以上版本的事件代理。
  • 类型:字符串
  • 格式必须是以下之一:
    • SupportedProperty.AUTHENTICATION_SCHEME_BASIC(用户名/密码认证)。这是默认的认证方案。

      有关详细信息,请参阅AUTHENTICATION_SCHEME_BASIC

    • SupportedProperty.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE(客户端证书认证)。

      有关详细信息,请参阅AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE

    • SupportedProperty.AUTHENTICATION_SCHEME_GSS_KRB(Kerberos)。

      有关详细信息,请参阅AUTHENTICATION_SCHEME_GSS_KRB

    • SupportedProperty.AUTHENTICATION_SCHEME_OAUTH2(OAuth 2.0)。您可以使用OAUTH2_ACCESS_TOKENOIDC_ID_TOKEN或两者。具体取决于您的需求。

  • 默认值:SupportedProperty.AUTHENTICATION_SCHEME_BASIC

当使用AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE时,必须设置以下属性之一:

  • SSL_KEY_STORE_PASSWORD
  • SSL_PRIVATE_KEY_PASSWORD

AUTHENTICATION_SCHEME设置为AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE时,SSL_KEY_STORE属性变为必填项。有关更多信息,请参阅类JCSMPProperties页面。

属性源(按优先级降序)示例
初始上下文下面的示例展示了如何启用客户端证书认证。
env.put(SupportedProperty.SOLACE_JMS_AUTHENTICATION_SCHEME, SupportedProperty.AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE);
JNDI属性文件Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_BASIC
Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_GSS_KRB
Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_CLIENT_CERTIFICATE
Solace_JMS_Authentication_Scheme=AUTHENTICATION_SCHEME_OAUTH2

以下是认证方案属性:

允许重复客户端ID启用

此属性指定是否允许新的JMS连接使用与现有连接相同的客户端标识符(ID)。如果启用了此属性,并且JMS客户端未提供客户端ID,API可能会使用初始连接所使用的自动生成的唯一客户端ID。

  • 支持版本:Solace PubSub+软件事件代理8.6.0及以上版本,Solace设备8.3.0及以上版本。此外,需要JMS API 10.2.0及以上版本。
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
JNDI连接工厂CLI/SEMP - 通过属性列表“client-properties”中的属性allow-duplicate-client-id设置

允许重复客户端ID启用属性

客户端描述

此属性指定应用程序描述。

  • 支持版本:Solace PubSub+ 5.0及以上版本
  • 类型:字符串
  • 格式:最多254个ASCII字符。
  • 默认值:“JNDI”
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_CLIENT_DESCRIPTION, “My JNDI Client Description”);
JNDI属性文件Solace_JMS_JNDI_ClientDescription=My JNDI Client Description

客户端描述属性

客户端ID

此属性指定客户端名称。如果未指定,则API生成一个唯一的客户端ID。

  • 支持版本:Solace PubSub+ 5.0及以上版本
  • 类型:字符串
  • 格式:必须是有效的主题名称;支持最多160个字节的UTF-8编码。
  • 默认值:生成的客户端ID
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_CLIENT_ID, “My JNDI Client”);
JNDI属性文件Solace_JMS_JNDI_ClientID=My JNDI Client

客户端ID属性

压缩级别

此属性用于启用并指定ZLIB压缩级别。

  • 类型:整数
  • 格式:压缩级别的有效值为0(无压缩),或1到9(其中1提供最少的压缩和最快的数据吞吐量,9提供最多的压缩和最慢的数据吞吐量)。默认值为0。
  • 默认值:0
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_COMPRESSION_LEVEL, 6);
JNDI属性文件Solace_JMS_CompressionLevel=6

压缩级别属性

连接重试次数

此属性指定如果首次连接失败,尝试JNDI连接的最大次数。如果此值为-1或大于1,并且使用了主机列表,则每次连接重试将根据连接重试属性设置的值遍历主机列表。

  • 类型:整数
  • 格式:有效值为-1到2147483647。0表示不执行任何自动连接重试(即,尝试一次后放弃);-1表示永远重试。
  • 默认值:0
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_CONNECT_RETRIES, 5);
JNDI属性文件Solace_JMS_JNDI_ConnectRetries=3
系统-DJNDI_Connect_Retries=3

连接重试次数属性

每个主机的连接重试次数

当使用主机列表作为URL属性(参见URL)时,此属性定义在转到列表中的下一个主机之前,尝试对单个主机进行JNDI连接尝试的最大次数。

在遍历列表时,每个条目可能会尝试连接重试次数属性设置的次数加1。

  • 类型:整数
  • 格式:有效值为-1到2147483647。0表示不重试(即,尝试一次后放弃);-1表示永远重试(即,API仅尝试连接到列表中的第一个主机)。
  • 默认值:0

此属性与连接和重新连接重试设置协同工作;它不取代它们。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_CONNECT_RETRIES_PER_HOST, 5);
JNDI属性文件Solace_JMS_JNDI_ConnectRetriesPerHost=10
系统-DJNDI_Connection_Retries_Per_Host=10

每个主机的连接重试次数属性

连接超时

此属性指定JNDI连接尝试的最大时间(以毫秒为单位)。

  • 类型:整数
  • 格式:以毫秒为单位;有效值为0到2147483647。0表示永远等待。
  • 默认值:30000(即,30秒)
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_CONNECT_TIMEOUT, 50000);
JNDI属性文件Solace_JMS_JNDI_ConnectTimeout=60000
系统-DJNDI_Connect_Timeout=60000

连接超时属性

拦截器

这些属性指定生产者拦截器(发送前钩子)和消费者拦截器(接收前钩子),应用程序使用它们来处理核心概念,如日志记录或加密。它用于设置完全限定的类名,这些类的方法分别在使用生产者拦截器和消费者拦截器发送或接收消息之前被调用。

消费者拦截器

  • 类型:字符串
  • 格式:指代在接收消息之前运行的拦截器的名称。
属性源示例
初始上下文对于消费者拦截器:
env.put(SupportedProperty.SOLACE_JMS_MESSAGE_CONSUMER_INTERCEPTOR_CLASS_NAME, CONSUMER_INTERCEPTOR_CLASS_NAME);
JNDI属性文件对于消费者拦截器,其中类的完全限定名为com.solace.example.MyDecryptingReceiverInterceptor
Solace_JMS_MessageConsumerInterceptorClassName=com.solace.example.MyDecryptingReceiverInterceptor
系统对于消费者拦截器:
-DSolace_JMS_MessageConsumerInterceptorClassName=com.solace.example.MyDecryptingReceiverInterceptor

消费者拦截器属性

生产者拦截器

  • 类型:字符串
  • 格式:指代在发送消息之前运行的拦截器的名称。
属性源示例
初始上下文对于生产者拦截器:
env.put(SupportedProperty.SOLACE_JMS_MESSAGE_PRODUCER_INTERCEPTOR_CLASS_NAME, PRODUCER_INTERCEPTOR_CLASS_NAME);
JNDI属性文件对于生产者拦截器,其中类的完全限定名为com.solace.example.MyEncryptingMessageProducerInterceptor
Solace_JMS_MessageProducerInterceptorClassName=com.solace.example.MyEncryptingMessageProducerInterceptor
系统对于生产者拦截器:
-DSolace_JMS_MessageProducerInterceptorClassName=com.solace.example.MyEncryptingMessageProducerInterceptor

生产者拦截器属性

JAAS登录上下文

此属性指定应用程序在实例化LoginContext时用于引用登录配置文件中的条目的名称。

  • 类型:字符串
  • 格式:指代登录配置文件中的条目名称。
  • 默认值:SolaceGSS
属性源(按优先级最高)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JAAS_LOGIN_CONTEXT, “SolaceGSS”);

JAAS登录上下文属性

JAAS配置文件重新加载启用

当此属性为true时,表示在连接或重新连接到事件代理之前,将重新加载登录配置文件。

  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false(禁用)
属性源(按优先级最高)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JAAS_CONFIG_FILE_RELOAD_ENABLED, true);

JAAS配置文件重新加载启用属性

JMSX用户ID启用

此属性指定是否在发送的消息中包含用户的身份。

  • 支持版本:Solace PubSub+ 7.2及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:false
属性源(按优先级降序)示例
JNDI连接工厂SolAdmin - 通过“新建JMS连接工厂”或“编辑JMS连接工厂”对话框中的“消息属性”选项卡设置。
CLI/SEMP - 通过属性列表“messaging‑properties”中的属性jmsx-user-id-enabled设置。

JMSX用户ID属性

Kerberos相互认证

此属性指定在启用Kerberos认证方案时是否使用相互认证。

  • 支持版本:Solace PubSub+ 7.0及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_KRB_MUTUAL_AUTHENTICATION, false);
JNDI属性文件Solace_JMS_KRB_Mutual_Authentication=false

Kerberos相互认证属性

Kerberos服务名称

此属性指定在启用Kerberos认证方案时使用的服务名称。

  • 支持版本:Solace PubSub+ 7.0及以上版本
  • 类型:字符串
  • 格式:任意字符串。SPN值的总长度不得超过190个字符,包括服务名称、主机FQDN、@符号和REALM名称。
  • 默认值:“solace”(SupportedProperty.DEFAULT_KRB_SERVICE_NAME

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_KRB_SERVICE_NAME, "solace");
JNDI属性文件Solace_JMS_KRB_Service_Name=KRBName

Kerberos服务名称属性

本地主机

此属性指定要使用的本地接口的IP地址。默认情况下,操作系统会选择接口。此属性适用于JNDI和数据连接。

  • 类型:字符串
  • 格式:IP地址
  • 默认值:无
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_LOCALHOST, "192.168.1.1");
JNDI属性文件Solace_JMS_Localhost=192.168.1.1
系统-DJMS_Solace_localhost=192.168.1.1

本地主机属性

密码

此属性指定用于连接到事件代理的密码。默认情况下,不指定密码。此密码适用于JNDI和JMS(即数据)连接,但在创建JMS连接时可以覆盖。有关更多信息,请参阅管理会话。

  • 类型:字符串
  • 格式:最大长度为128个字符。
  • 默认值:“”
属性源(按优先级降序)示例
系统-Djava.naming.security.credentials=pwd
初始上下文env.put(Context.SECURITY_CREDENTIALS, pwd);
JNDI属性文件java.naming.security.credentials=pwd
URLsmf://user1:pwd@192.168.1.1:55555
使用主机列表时,可以在每个URL中指定用户名或密码。在这种情况下,选择的用户名和密码是URL列表中找到的第一个。

密码属性

读取超时

此属性指定从主机读取JNDI查找回复的最大时间(以毫秒为单位)。

  • 类型:整数
  • 格式:有效值为0到2147483647。0表示永远等待。
  • 默认值:10000(即,十秒)
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_READ_TIMEOUT, 60000);
JNDI属性文件Solace_JMS_JNDI_ReadTimeout=60000
系统-DJNDI_Read_Timeout=60000

读取超时属性

重新连接重试次数

此属性指定在已建立的JNDI连接丢失后,尝试重新连接到主机的次数。如果不需要执行JNDI查找,则不会重新建立到主机的JNDI连接。

当使用主机列表作为URL属性(参见URL)时,如果无法重新连接到任何主机,API可以再次尝试连接到列表中的主机,从列表中的第一个主机开始。每次API遍历主机列表而未成功重新连接都被视为一次重新连接重试。例如,如果使用了值为2的重新连接重试次数,则API可能会尝试连接到所有列出的主机而无法成功连接三次:一次用于初始连接尝试,然后两次用于重新连接重试。

每次尝试重新连接到主机失败后,API将等待重新连接重试等待属性(参见重新连接重试等待)设置的时间,然后再次尝试连接到主机。需要注意的是,尝试连接到一个主机的次数由每个主机的连接重试次数属性(参见每个主机的连接重试次数)设置的值决定。

  • 类型:整数
  • 格式:有效值为-1到2147483647。0表示不自动重新连接重试(即,尝试一次后放弃);-1表示永远重试。
  • 默认值:20
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_RECONNECT_RETRIES, 100);
JNDI属性文件Solace_JMS_JNDI_ReconnectRetries=100
系统-DJNDI_Reconnect_Retries=100

重新连接重试次数属性

重新连接重试等待

如果连接或重新连接尝试失败,API将等待此属性设置的时间(以毫秒为单位),然后再次尝试连接或重新连接。

当使用主机列表作为URL属性(参见URL)时,每个主机的连接重试次数属性(参见每个主机的连接重试次数)设置在尝试连接或重新连接到下一个主机之前可以进行的连接或重新连接尝试次数。

  • 类型:整数
  • 格式:有效值为0到60000。0表示不等待。
  • 默认值:3000(即,三秒)
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_JNDI_RECONNECT_RETRY_WAIT, 10000);
JNDI属性文件Solace_JMS_JNDI_ReconnectRetryWait=10000
系统-DJNDI_Reconnect_Retry_Wait=3000

重新连接重试等待属性

SSL证书验证

指示API是否应使用信任库中的受信任证书验证服务器证书。使用JKS或PKCS12证书文件作为信任库。如果要使用SSL证书主机验证和SSL证书日期验证属性,必须将此属性设置为true

  • 支持版本:Solace PubSub+及更高版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificate=false

SSL证书验证属性

SSL证书日期验证

指示会话连接是否应在收到过期证书或尚未使用的证书时失败。如果SSL证书验证设置为false,则不会执行日期验证(覆盖此属性)。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE_DATE, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificateDate=true

SSL证书日期验证属性

SSL证书主机验证

指示会话连接是否验证服务器的X.509证书中的主题备用名称是否与URL属性中指定的主机匹配。如果X.509证书中没有主题备用名称部分,则检查主题字段中的通用名称。此设置默认为true(推荐设置)。需要注意的是,SSL证书验证属性覆盖此属性,因此,如果SSL证书验证设置为false,则不会执行SSL证书主机验证。

  • 支持版本:Solace PubSub+ 9.7及以上版本
  • 类型:布尔值
  • 格式:[true|false]
  • 默认值:true

根据RFC 2818和RFC 5280,Solace不建议将此属性设置为false。将属性设置为false意味着不执行使用主题备用名称的服务器证书验证。

SSL证书主机验证属性

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_VALIDATE_CERTIFICATE_HOST, true);
JNDI属性文件Solace_JMS_SSL_ValidateCertificateHost=true

SSL密码套件

用于与事件代理协商安全连接的TLS/SSL密码套件。

密码套件是定义用于身份验证、密钥协商、加密和完整性保护的安全算法和密钥大小的组合。可以使用其JSSE名称或OpenSSL名称指定密码套件。

对于10.27及以后版本的PubSub+ JMS API,SOLACE_JMS_SSL_CIPHER_SUITE属性已被废弃,取而代之的是JVM管理的安全设置。现在通过JVM的安全模块控制密码套件。

对于10.26及更早版本,PubSub+ JMS API支持以下密码套件,可以使用其JSSE名称或OpenSSL名称指定。下面列出了JSSE名称,后面是OpenSSL名称:

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384(ECDHE-RSA-AES256-SHA384)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA(ECDHE-RSA-AES256-SHA)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_RSA_WITH_AES_256_CBC_SHA256(AES256-SHA256)

此密码套件需要Java 7或更高版本,并且需要安装JCE无限制强度管辖策略文件。

  • TLS_RSA_WITH_AES_256_CBC_SHA(AES256-SHA)

此密码套件需要安装JCE无限制强度管辖策略文件。

  • TLS_ECDHE_RSA_WITH_3DES_EDE_CBC_SHA(ECDHE-RSA-DES-CBC3-SHA)

此密码套件需要Java 7或更高版本。

  • SSL_RSA_WITH_3DES_EDE_CBC_SHA(DES-CBC3-SHA)
  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA(ECDHE-RSA-AES128-SHA)

此密码套件需要Java 7或更高版本。

  • TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256(ECDHE-RSA-AES128-SHA256)

此密码套件需要Java 7或更高版本。

  • TLS_RSA_WITH_AES_128_CBC_SHA256(AES128-SHA256)

此密码套件需要Java 7或更高版本。

  • TLS_RSA_WITH_AES_128_CBC_SHA(AES128-SHA)

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:密码套件的逗号分隔列表
  • 默认值:所有支持的密码套件

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_CIPHER_SUITE, "TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA, TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA ");
JNDI属性文件Solace_JMS_SSL_CipherSuites=SSL_RSA_WITH_RC4_128_SHA

SSL密码套件属性

SSL连接降级为

设置TLS/SSL连接在客户端认证后将降级为的传输协议。此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 7.2及以上版本
  • 类型:字符串
  • 允许值:"PLAIN_TEXT"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_CONNECTION_DOWNGRADE_TO, “PLAIN_TEXT”);
JNDI属性文件Solace_JMS_SSL_ConnectionDowngradeTo=PLAIN_TEXT

SSL连接降级为属性

SSL排除协议

不应使用的加密协议的逗号分隔列表。tlsv1.1tlsv1.2tlsv1.3是有效的条目。指定多个协议时,顺序不重要。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:协议名称的逗号分隔列表
  • 默认值:""

tlsv1.1tlsv1.2需要Java 7或更高版本。tlsv1.3需要Java 11或更高版本。

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_EXCLUDED_PROTOCOLS, "tlsv1");
JNDI属性文件Solace_JMS_SSL_ExcludedProtocols=tlsv1

SSL排除协议属性

SSL内部归一化密钥库格式

此属性指定内部归一化密钥库的格式。它允许您覆盖用于处理SSL密钥库中的密钥的内部归一化密钥库的类型,如果默认格式有问题。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 7.2.1及以上版本
  • 类型:字符串
  • 格式:通常是标准内置格式之一,如“jks”或“pkcs12”
  • 默认值:“”。如果未指定,则使用SSL密钥库的类型。
属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_NORMALIZED_FORMAT, “pkcs12”);
JNDI属性文件Solace_JMS_SSL_KeyStoreNormalizedFormat=pkcs12
系统系统属性 -Djavax.net.ssl.keyStoreNormalizedType=PKCS12

SSL密钥库格式

SSL密钥库

此属性指定用于URL或路径格式的密钥库。密钥库包含客户端的私钥和证书,用于在TLS/SSL握手期间验证客户端的身份。如果认证方案是客户端证书认证,则必须设置此属性。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:密钥库文件的URL或路径
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE, "mykeystore.jks");
JNDI属性文件Solace_JMS_SSL_KeyStore=myKeyStore.jks
系统-Djavax.net.ssl.keyStore=myKeyStore.jks

SSL密钥库属性

SSL密钥库格式

此属性指定给定密钥库的格式。它适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:JKS或PKCS12
  • 默认值:"jks"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_FORMAT, "pkcs12");
JNDI属性文件Solace_JMS_SSL_KeyStoreFormat=pkcs12
系统-Djavax.net.ssl.keyStoreType=PKCS12

SSL密钥库格式属性

SSL密钥库密码

此属性指定用于验证密钥库完整性的密钥库密码。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_KEY_STORE_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSL_KeyStorePassword=mypass
系统-Djavax.net.ssl.keyStorePassword=mypass

SSL密钥库密码属性

SSL私钥别名

此属性指定用于认证的密钥库中的哪个私钥。当使用包含多个私钥条目的密钥库时,此属性是必需的。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+及更高版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PRIVATE_KEY_ALIAS, "alias");
JNDI属性文件Solace_JMS_SSL_PrivateKeyAlias=alias

SSL私钥别名属性

SSL私钥密码

此属性指定用于认证的密钥库中的哪个私钥。当使用包含多个私钥条目的密钥库时,此属性是必需的。

此属性适用于JNDI和数据连接。

  • 支持版本:Solace PubSub+ 6.1及以上版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PRIVATE_KEY_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSL_PrivateKeyPassword=password

SSL私钥密码属性

SSL协议

要使用的加密协议的逗号分隔列表。支持sslv3tlsv1tlsv1.1tlsv1.2。指定多个协议时,顺序不重要。

  • 支持版本:Solace PubSub+ 6.0及以上版本

  • 类型:字符串

  • 格式:协议名称的逗号分隔列表

  • 默认值:"sslv3,tlsv1,tlsv1.1,tlsv1.2"

  • 从Solace PubSub+ 7.1开始,建议使用“SSL排除协议”属性。您不能同时使用“SSL协议”和“SSL排除协议”。参见SSL排除协议。

    • tlsv1.1tlsv1.2需要Java 7或更高版本。

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_PROTOCOL, "tlsv1");
JNDI属性文件Solace_JMS_SSLProtocol=tlsv1

SSL协议属性

SSL信任库

要使用的信任库文件。如果SSL证书验证属性设置为true,则此属性是必需的。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:信任库文件的URL或路径
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
系统-Djavax.net.ssl.trustStore=myTrustStore.jks
JNDI属性文件Solace_JMS_SSL_TrustStore=myTrustStore.jks
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE, "mytruststore.jks");

SSL信任库属性

SSL信任库格式

指示为SSL信任库属性提供的信任库使用的格式。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:"jks""pkcs12"
  • 默认值:"jks"

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE_FORMAT, "pkcs12");
JNDI属性文件Solace_JMS_SSLTrustStoreFormat=pkcs12
系统-Djavax.net.ssl.keyStoreType=PKCS12

SSL信任库格式属性

SSL信任库密码

为SSL信任库属性提供的信任库的密码。如果SSL证书验证属性设置为true,则此属性是必需的。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:字符串
  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUST_STORE_PASSWORD, "password");
JNDI属性文件Solace_JMS_SSLTrustStorePassword=mypass
系统-Djavax.net.ssl.trustStorePassword=mypass

SSL信任库密码属性

SSL受信任通用名称列表

最多16个可接受的通用名称列表,用于在服务器证书中匹配。如果没有提供通用名称(默认情况下),则意味着没有通用名称验证,所有通用名称都可接受。

如果SSL证书验证设置为false或SSL服务器证书验证设置为true,则不执行通用名称验证。

  • 支持版本:Solace PubSub+ 6.0及以上版本
  • 类型:字符串
  • 格式:通用名称的逗号分隔列表

首尾空格被视为通用名称的一部分,并不会被忽略。

  • 默认值:""

此属性适用于JNDI和数据连接。

属性源(按优先级降序)示例
初始上下文env.put(SupportedProperty.SOLACE_JMS_SSL_TRUSTED_COMMON_NAME_LIST, "acme.com,www.acme.com");
JNDI属性文件Solace_JMS_SSL_TrustedCommonNameList=acme.com,www.acme.com

SSL受信任通用名称列表

URL

此属性指定用于JNDI查找的主机(LDAP服务器或事件代理)的IP地址和端口(可选)。主机条目使用以下格式:

<URI Scheme>://[username]:[password]@<IP address>[:port]

其中:

URI Scheme是用于JNDI查找的统一资源标识符(URI)方案。有效值为:

  • smf—使用SMF进行应用与主机之间的明文通信。SMF是默认值。
  • smfs—使用TLS/SSL协议通过SMF进行应用与主机之间的安全通信

username是连接到主机所需的用户名。客户端用户名可以由单个或多个JMS客户端使用。

password是连接时需要认证的用户名密码。

IP address是主机的IP地址(或主机名)。要指定客户端可以尝试连接的优先主机列表,请按重要性顺序列出每个IP地址,用逗号分隔。

port是用于建立连接的端口号。仅当客户端需要使用自动分配的默认端口号以外的端口时,才需要提供值。不使用压缩时的默认端口号为55555,使用压缩时为55003。TLS/SSL连接(无论是否使用压缩)的默认端口为55443。

  • 类型:字符串
  • 格式:smf://username:password@ipaddress:port
  • 默认值:无

提供的URL参数用于JNDI连接和JMS数据连接。当JNDI和JMS数据连接都是针对提供JNDI和JMS服务的事件代理时,这非常有用。但是,当JNDI存储托管在LDAP服务器上,而事件代理仅用于JMS代理时,创建JMS连接时在连接工厂中指定的参数可以覆盖用于JNDI连接的指定URL参数。

属性源(按优先级降序)示例
初始上下文env.put(InitialContext.PROVIDER_URL, “smf://user:pwd@192.168.1.1:55555”);
系统-Djava.naming.provider.url=smf://192.168.1.1
JNDI属性文件java.naming.provider.url=smf://192.168.1.1,smf://192.168.2.1
Host=smf://192.168.1.1,smf://192.168.2.1
注意:此示例显示了事件代理的优先列表。

URL属性

用户名

此属性指定用于连接到事件代理的用户名。默认情况下,此用户名属性适用于JNDI连接和JMS数据连接,但在创建JMS连接时可以覆盖。

  • 类型:字符串
  • 格式:最大长度为32个字符。
  • 默认值:无
属性源(按优先级降序)示例
系统-Djava.naming.security.principal=user1
初始上下文env.put(Context.SECURITY_PRINCIPAL, user1);
JNDI属性文件java.naming.security.principal=user1
URLsmf://user1:pwd@192.168.1.1:55555
使用主机列表时,可以在每个URL中指定用户名或密码。在这种情况下,选择的用户名和密码是URL列表中找到的第一个。

用户名属性

VPN

此属性指定连接到事件代理时使用的消息VPN。此属性适用于JNDI和数据连接。默认值为“”,表示连接到默认消息VPN。

  • 类型:字符串
  • 格式:UTF-8编码的最大长度为32个字节。
  • 默认值:“”
属性源(按优先级降序)示例
系统-DSolace_JMS_VPN=myVPN
初始上下文env.put(SupportedProperty.SOLACE_JMS_VPN, “myVPN”);
JNDI属性文件Solace_JMS_VPN=myVPN
用户名env.put(Context.SECURITY_PRINCIPAL, user1@myVPN);
  • 适用于JNDI和数据连接。
  • 可以将消息VPN作为用户名的一部分设置。这对于只理解标准属性的应用服务器非常有用。 |

消息VPN属性