JMSXUserID
功能 > JMSXUserID
JMSXUserID 支援
有時知道訊息發送者的已驗證使用者名稱會很有用。 預設情況下不會新增此項,但您可以透過 Java 程式碼在代理程式上設定 populateJMSXUserID 屬性來啟用它
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 對應到的名稱。