activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Michael Barroco (JIRA)" <j...@apache.org>
Subject [jira] Created: (AMQ-3155) Bad conversion from stomp topic to activeMQ topic
Date Tue, 25 Jan 2011 07:13:42 GMT
Bad conversion from stomp topic to activeMQ topic
-------------------------------------------------

                 Key: AMQ-3155
                 URL: https://issues.apache.org/jira/browse/AMQ-3155
             Project: ActiveMQ
          Issue Type: Bug
          Components: Connector
    Affects Versions: 5.4.2
         Environment: Win7 64bits, jre 1.6.0_23
            Reporter: Michael Barroco


>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) {
		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;
    }
}
</i>

I hope it could be interesting.

Best regards

michael

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message