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