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.

Reply via email to