こんにちは私はキューへのアクセスと作成を保護するためにactivemqを構成したいと思います。
client.<client-id>.sub
client.<client-id>.pub
そして遅く、リダイレクトされたメッセージにclient-idヘッダーを追加して、一意のキューへのCamelリダイレクトを作成します
なにか提案を?
PS私の英語を忘れてください
こんにちは私はキューへのアクセスと作成を保護するためにactivemqを構成したいと思います。
client.<client-id>.sub
client.<client-id>.pub
そして遅く、リダイレクトされたメッセージにclient-idヘッダーを追加して、一意のキューへのCamelリダイレクトを作成します
なにか提案を?
PS私の英語を忘れてください
ActiveMQキューおよびトピックへの承認を処理する方法は、プレフィックスおよびユーザーレベルでのauthorizationPluginによるものです。
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry queue="client.client123.>" read="client123" write="client123" admin="admins" />
<authorizationEntry topic="client.client123.>" read="client123" write="client123" admin="admins"/>
... etc. for other clients.
</authorizationEntries>
これは、client123が任意の認証メカニズムによって認証されていることを前提としています。
Camelにルーティングを処理させる方法には従いませんが、おそらくこのようなものは、複数のクライアントキューからヘッダー付きの単一のキューにルーティングしたいものです(ほんの一例ですが、それに合わせて変更する必要があります)あなたのケースは少し、エラー処理などがあります。
>
ワイルドカードキューの使用に注意してください。
from("jms:queue:client.>")
.process(new Processor(){
@Override
public void process(Exchange exchange) throws Exception {
String queue = exchange.getIn().getHeader("JMSDestination").toString();
// queue name is: queue://client.<client_id>.xx
String clientId = queue.substring(queue.indexOf(".")+1);
int idx = clientId.lastIndexOf(".");
clientId = clientId.substring(0,idx);
System.out.println("ClientID: " + clientId);
exchange.getIn().setHeader("SendingClientId", clientId);
}
})
.to("jms:queue:collector.queue");