I wrote yet another certificate-based authentication/authorization plugin. It reads CN from certificate provided by the client and depending on what is in there it allows or dissalows creation/deletion/writing to topics/queues. To test it I wrote a simple Java client that uses OpenWire. Connection is made successfully, CN is read and permissions are added are expected. Unfortunately after connection is created (addConnection in plugin is called), destination "topic://ActiveMQ.Advisory.Connection" is created by the client, or rather in its context (ok, unexpected, but it makes sense as I used advisory topics), method addConsumer() (from BrokerFilter) is called, and its destination is:
DEST: topic://ActiveMQ.Advisory.TempQueue,topic://ActiveMQ.Advisory.TempTopic IS TOPIC: true PHYSNAME: topic://ActiveMQ.Advisory.TempQueue,topic://ActiveMQ.Advisory.TempTopic DEST AS STR: Topic QUALIFIED NAME: topic://ActiveMQ.Advisory.TempQueue,topic://ActiveMQ.Advisory.TempTopic DEST PATHS: topic://ActiveMQ|Advisory|TempQueue,topic://ActiveMQ|Advisory|TempTopic IS TEMP: false This means that it is a topic, its physical name is equal to qualified name, which makes no sense whatsoever, what more this name is made up from two topics names, it isn't temporary (not what name suggests) and to add insult to the injury its "getDestinationPaths()" method returns array with the following elements: "topic://ActiveMQ" "Advisory" "TempQueue,topic://ActiveMQ" "Advisory" "TempTopic" I wrote my plugin using "org.apache.activemq.security.AuthorizationBroker" as a base and aside from this and single problem with MQTT protocol it works fine. What is the reason for this topic's existence? Why is its name so weird? Should I expect more destinations with such names? Is it enough to check for exactly this name and I will be done? I did it and it works, but I can't be sure that it won't happen again with different weird topic name. Thanks in advance, -- Jędrzej Dudkiewicz I really hate this damn machine, I wish that they would sell it. It never does just what I want, but only what I tell it.
