JMSXUserID

功能 > JMSXUserID

JMSXUserID 支持

有时知道消息发送者的已认证用户名很有用。默认情况下不会添加此信息,但您可以通过在代理上设置 **populateJMSXUserID** 属性来启用它,方法是通过 Java 代码

BrokerService broker = new BrokerService();
broker.setPopulateJMSXUserID(true);
broker.start();

或者通过 XML 配置

<broker xmlns="http://activemq.org/config/1.0" populateJMSXUserID="true">
   ...
</broker>

或者通过 代理配置 URI.

启用此功能后,它会将 JMS 属性 **JMSXUserID** 添加到每个 JMS 消息中,以便消费者可以使用代理的认证策略准确地知道发送者是谁。也就是说,如果启用此功能,生产者无法欺骗此值,因为代理会在发送者的连接通过认证后将属性附加到消息中。

如果您允许匿名访问,您 **必须** 也添加

useAuthenticatedPrincipalForJMSXUserID="true"

代理元素的属性。否则,匿名客户端可以通过从客户端设置 JMSXUserID 属性来欺骗身份。此属性在版本 5.5 或 5.5-SNAPSHOT > 3 月 12 日可用。但是,请注意,对于基于 SSL 证书的认证,例如,使用 TextFileCertificateLoginModule JAAS 模块时,这将更改代理提供的 JMSXUserID 的语义。它不会返回证书的 DN,而是提供 JAAS 模块将 DN 映射到的名称。

Apache、ActiveMQ、Apache ActiveMQ、Apache 羽毛标志和 Apache ActiveMQ 项目标志是 Apache 软件基金会的商标。版权所有 © 2024,Apache 软件基金会。根据 Apache 许可证 2.0 授权。