Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Won't Fix
-
5.4.2
-
None
-
None
-
Win7 64bits, jre 1.6.0_23
-
Patch Available
Description
From several days, I'm working on the authentication and authorization topics for a stomp process. I identified a strange behavior. The topics with sub destinations (ie: /topic/subject/hello ) didn't seemed to be handled by a virtual topic rule (ie: sub1.> ).
It seems that the stomp topic is not properly converted by when it is handled by ActiveMQ and the topic ( /topic/subject/hello ) is considered as "topic://subject/hello" and not as "topic://subject.hello"
So i implemented an authorization broker to correct it:
<i>
public class MyAuthorizationBroker extends AuthorizationBroker {
public MyAuthorizationBroker(Broker next,
AuthorizationMap authorizationMap)
public void send(ProducerBrokerExchange producerExchange, Message messageSend) throws Exception
{ ActiveMQDestination dest = correctStompTopic(messageSend.getDestination()); messageSend.setDestination(dest); super.send(producerExchange, messageSend); }public Subscription addConsumer(ConnectionContext context, ConsumerInfo info) throws Exception
{ ActiveMQDestination dest = correctStompTopic(info.getDestination()); info.setDestination(dest); return super.addConsumer(context, info); }public ActiveMQDestination correctStompTopic(ActiveMQDestination destination)
{ String aqdest = destination.getPhysicalName().replace('/', '.'); destination.setPhysicalName(aqdest); return destination; }}
</i>
I hope it could be interesting.
Best regards
michael