0

匿名クライアントがトピックをサブスクライブできるように、activemq サーバーを構成しようとしています (トピックを作成または発行することはできません)。

ブローカー構成に応じて権限を設定しました。

<plugins>
    <simpleAuthenticationPlugin anonymousAccessAllowed="true">
        <users>
            <authenticationUser username="system" password="manager"
                groups="anonymous,admins"/>
        </users>
    </simpleAuthenticationPlugin>


  <!--  Lets configure a destination based authorization mechanism -->
  <authorizationPlugin>
    <map>
      <authorizationMap>
        <authorizationEntries>
          <authorizationEntry queue=">" read="admins,anonymous" write="admins" admin="admins" />

          <authorizationEntry topic=">" read="admins,anonymous"  write="admins" admin="admins" />

        </authorizationEntries>
      </authorizationMap>
    </map>
  </authorizationPlugin>

</plugins>

ウェブで見つけたいくつかのチュートリアルに基づいて、サブスクライブするために以下のコードを使用しています。ただし、このトピックのコンシューマ コードと、私が見つけたすべてのものは、バインドする activemq トピックを作成し (トピックが既に存在する場合はイベント)、結果として、ユーザーに管理者権限を付与した場合にのみ承認されます。 ..トピックを作成せずにサブスクライブする方法はありますか?

     ActiveMQSslConnectionFactory connectionFactory = new ActiveMQSslConnectionFactory(connectionString);
     connection = connectionFactory.createConnection();
     session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);
     destination = session.createTopic(topicName);
     MessageConsumer consumer = null;
     consumer = session.createConsumer(destination);
     consumer.setMessageListener(this);
     connection.start();
4

1 に答える 1