Details
-
Bug
-
Status: Closed
-
Major
-
Resolution: Fixed
-
qpid-java-broker-7.0.0
-
Java Broker - latest trunk
Qpid JMS client - 0.11.1
Description
There is an issue with routing key when sending message to Java Broker. When ACL rule contains routingKey constraint Java Broker denies access.
ACL rule:
ACL ALLOW-LOG FIXGW ACCESS VIRTUALHOST ACL ALLOW-LOG FIXGW PUBLISH EXCHANGE name="request.FIXGW" routingKey="TradeReport*"
Client code snippet:
TextMessage message = session.createTextMessage("..."); message.setJMSCorrelationID(UUID.randomUUID().toString()); message.setJMSType("TradeReport");
Java Broker log:
... 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.s.a.c.RuleSet) - Checking against rule: Rule[identity='ALL', action=AclAction[action=Action[operation=All, object=All, properties={}], firewallRule=null], permission=DENY_LOG] 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.s.a.c.RuleSet) - Action matches. Result: DENY_LOG 2017-07-11 15:55:31,003 INFO [IO-/172.23.38.39:40030] (q.m.a.denied) - [con:2(FIXGW@/172.23.38.39:40030/default)/ch:1] ACL-1002 : Denied : Publish Exchange {ROUTING_KEY=request.FIXGW, NAME=request.FIXGW, VIRTUALHOST_NAME=default} 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.m.AbstractConfiguredObject) - authorise returned DENIED 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.p.frame) - SEND[/172.23.38.39:40030|1] : Detach{handle=0,closed=true,error=Error{condition=not-allowed,description=Permission ACTION(publish) is denied for : Exchange 'request.FIXGW' on VirtualHost 'default'}} 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.s.d.DerbyMessageStore) - REMOVE called on message: 3 2017-07-11 15:55:31,003 DEBUG [IO-/172.23.38.39:40030] (o.a.q.s.p.v.f.FrameHandler) - RECV 0 bytes ...
In log there is routing key same as name. But in client was routing key specified as TradeReport.