0

ActiveMQがJMSXUserIDプロパティをサポートしていることを知っています。

http://activemq.apache.org/jmsxuserid.html

ActiveMQの代わりにApollo(ActiveMQサブプロジェクト)を使用しようとしていますが、現時点では、Apolloで同じ動作を再現しようとして立ち往生しています。

私は仕組みにこだわるわけではありませんが、一言で言えば、認証されたユーザーからのすべての着信メッセージに、どのユーザーがどのメッセージを送信したかを知らせる識別子をタグ付けする方法が必要ですが、ユーザーがなりすますことはできません自分自身を設定します。これは基本的に、ActiveMQでJMSXUserIDが使用されるものとまったく同じですが、Apolloで同じことを行う方法がわからないようです。

私は何が欠けていますか?

ActiveMQはすべてのページでApolloにリンクしているため、これはGoogleにとって特に難しいと感じています。そのため、ほとんどの検索結果は役に立ちません。

前もって感謝します。

4

2 に答える 2

0

Apollo は JMS をサポートしていますか?

Web ページから: http://activemq.apache.org/apollo/

現在のバージョンでは、Apollo は STOMP プロトコルのみをサポートしていますが、元の ActiveMQ と同様に、マルチ プロトコル ブローカーとして設計されています。将来のバージョンでは、ActiveMQ 5.x JMS クライアントと互換性があるように、OpenWire サポートが追加される予定です。

目前の問題を解決するには、コードにユーザー ID を含むヘッダーを追加するだけでよいのではないでしょうか?

OS から取得するだけで、たとえば Java を使用している場合は、次のようなものを使用できます。

System.getProperty("user.name") 

STOMP ヘッダーにアタッチします。ただし、これはサーバー自体ではなく、クライアント ライブラリ (使用されている場合はストンプ ライブラリ) の問題です。

于 2012-06-17T15:02:21.273 に答える
0

Apollo のユーザー マニュアルには、送信ユーザーの id に設定されたユーザー ヘッダーを自動的に追加するように apollo を構成する方法が説明されています。

基本的に、コネクタのストンプ プロトコルを次のように設定します。

<connector id="tcp" bind="tcp://0.0.0.0:61613">
  <stomp>
    <add_user_header separator=",">JMSXUserID</add_user_header>
  </stomp>
</connector>

残念ながら、Openwire プロトコルはこれをまだサポートしていません。 問題 APLO-213は、それに対処するために公開されています。

于 2012-06-18T13:36:59.037 に答える