繁体   English   中英

具有SSL连接功能的通用JMS客户端

[英]Generic JMS Client with SSL connection capability

当前,我已经使用标准JMS API(仅javax.jms.*类)实现了非SSL安全客户端。 当提供特定的产品JAR和正确的类名时,它可以连接到任何JMS服务器。

有没有办法通过SSL连接功能实现这种通用的(独立于供应商的)JMS客户端?

我的研究并不成功-我发现了几个使用SSL实现JMS的示例(例如Novell JMSActiveMQ ),但是它们都不能避免直接在代码中使用特定于供应商的类,并且实现方式也大不相同。

使用SSL不需要在客户端中更改任何代码。 添加SSL功能仅是配置问题。

通常,几乎没有什么不同:

  1. 连接URL,以便客户端通过SSL协议连接到正确的端口( ssl://broker_url而不是tcp://broker_url )。
  2. 连接工厂类 -可能与非SSL 不同。
  3. 要使用的密钥库和/或信任 可以使用特定方法以编程方式设置这些文件的路径-但这种方法需要实施特定于供应商的代码。 更好的选择是传递KS / TS java系统属性。 (即使没有使用-D JVM选项的任何准备,也可以完成此操作。)

由于第2点和第3点从一个JMS代理到另一个JMS代理,因此有所不同,请参阅供应商的文档以获取更多详细信息。


该答案基于成功连接到Apache ActiveMQ和Tibco EMS(包括相互证书认证)的经验。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM