activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dejan Bosanac <de...@nighttale.net>
Subject Re: Stomp Topic
Date Tue, 25 Jan 2011 09:18:22 GMT
Hi,

if you want to use topic://subject.hello in the broker, then your stomp
destination should be /topic/subject.hello

See
http://activemq.apache.org/stomp.html#Stomp-WorkingwithDestinationswithStomp
for
more details on the topic


Regards
-- 
Dejan Bosanac
-----------------
FuseSource - The experts in open source integration and messaging.
Email: dejanb@fusesource.com
Web: http://fusesource.com
Twitter:  http://twitter.com/dejanb
ActiveMQ in Action - http://www.manning.com/snyder/
Blog - http://www.nighttale.net


On Tue, Jan 25, 2011 at 8:13 AM, barroco <barroco@ebu.ch> wrote:

>
> 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.
>

Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message