1

http://docs.oracle.com/javaee/1.4/api/javax/jms/Session.html#createTopic(java.lang.String)このAPIはsession.createTopic(topicname)、物理トピックを作成するためのものではないと言っています。これは何を意味するのでしょうか?

「admin」の権限を持つユーザーの1つのグループがトピックの作成を担当し、「write」の権限を持つ別のユーザーのグループがこのトピックへのメッセージの公開を担当するようにしたい場合、これを実装するにはどうすればよいですか。後者のグループも、次の方法を使用する必要があるため、「admin」の権限を持っている必要があるようです session.createTopic(topicname)

「管理」権限と「書き込み」権限を分離するにはどうすればよいですか?

4

2 に答える 2

5

JMS仕様の意味するところは、createTopic(String)を使用して論理ハンドル(javax.jms.Topic、Destinationのサブタイプ)を提供し、後でcreateProducer(Destination)やcreateConsumer(Destination)などの他の呼び出しで使用できることです。 。ActiveMQでは、物理的な宛先が同時に作成されることがあります

ユーザーが既に作成された宛先にのみ公開できるようにする場合は、そのグループに読み取りおよび書き込み権限を割り当てますが、管理者は割り当てません。明らかに、これらのトピックがすでに存在していることを前提としています。存在しない場合は、例外がスローされます。

トピック作成をどのように管理するかを正確に言っていませんが、起動時に作成されるActiveMQ構成でそれを実行しても問題がない場合は、宛先ブロックでそれらのトピックを定義します。

<broker xmlns="http://activemq.apache.org/schema/core">
  <destinations>
    <topic physicalName="topic.1" />
    <topic physicalName="topic.2" />
  </destinations>
</broker>
于 2012-07-18T13:27:16.283 に答える