第 7 章 安全性
红帽构建的 Apache Qpid JMS 具有一系列与安全相关的配置选项,可根据您的应用需求加以利用。
在应用中创建连接时,用户名和密码等基本用户凭据应直接传递给 ConnectionFactory
。但是,如果您使用 no-argument factory 方法,也可以在连接 URI 中提供用户凭证。如需更多信息,请参阅 第 5.1 节 “JMS 选项” 部分。
另一个常见的安全考虑因素是使用 SSL/TLS。当连接 URI 方案在连接 URI 中指定时,客户端通过
SSL/TLS 传输 连接到服务器,并提供各种选项来配置行为。如需更多信息,请参阅 第 5.3 节 “SSL/TLS 选项” 部分。
与之前的项目一致,可能需要将客户端限制为只允许使用服务器提供的特定 SASL 机制,而不是从所有它支持的选择。如需更多信息,请参阅 第 5.4 节 “AMQP 选项” 部分。
在接收的 ObjectMessage
上调用 getObject ()
的应用程序可能需要限制在序列化过程中创建的类型。请注意,使用 AMQP 类型系统组成的消息正文不使用 ObjectInputStream
机制,因此不需要此预防。如需更多信息,请参阅 “解序列化策略选项”一节 部分。
7.1. 启用 OpenSSL 支持 复制链接链接已复制到粘贴板!
SSL/TLS 连接可以配置为使用原生 OpenSSL 实现来提高性能。要使用 OpenSSL,必须启用 transport.useOpenSSL
选项,并且必须在 classpath 上提供 OpenSSL 支持库。
要在 Red Hat Enterprise Linux 上使用系统安装的 OpenSSL 库,请安装 openssl
和 apr
RPM 软件包,并在 POM 文件中添加以下依赖项:
示例:添加原生 OpenSSL 支持
Netty 项目中提供了 OpenSSL 库实现列表。