Hello,
>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 in some cases (maybe
NOT ALL):
public class MyAuthorizationBroker extends AuthorizationBroker {
public MyAuthorizationBroker(Broker next,
AuthorizationMap authorizationMap) {
super(next, 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;
}
}
For my project, it seems to work, I hope this could be helpfull and I'm very
interested if somebody find a best way to do it.
Best regards
michael
PS: I created a new issue
--
View this message in context:
http://activemq.2283324.n4.nabble.com/Stomp-Topic-tp3235572p3235572.html
Sent from the ActiveMQ - Dev mailing list archive at Nabble.com.