Hi,

I am using Qpid JMS to send messages to a C++ broker which will then be 
received by a C++ client.  My JMS client connects to the broker using a 
different authenticated user than the C++ client.  The issue I am running into 
is that when the JMS client sends a message, it sets the user_id property on 
the message so that when the C++ client receives the message, it errors out 
with something like:

"unauthorized-access: authorised user id : user1@QPID but user id in message 
declared as user2 
(/builddir/build/BUILD/qpid-0.28-rc2/cpp/src/qpid/broker/SemanticState.cpp:497"

Without having to force both my clients to authenticate using the same 
username, is there any way to work around this issue?

The easiest solution seems to be to have my JMS client set the user_id property 
of the message to be empty string, but I can't seem to find a way to do this.  
I see in org.apache.qpid.client.BasicMessageProducer_0_10.sendMessage there is 
the following line:
messageProps.setUserId(userIDBytes);

And tracing back, it looks like the userIDBytes is basically grabbed from the 
producer's connection username.

But is there any way to prevent the setting of the user id from happening?  I 
know that when I send a message from the C++ client, the userId property of the 
message is empty by default.  Why is the JMS side different?

Or an alternative is, is there a way to ignore the user_id field when receiving 
messages?

Thanks

Reply via email to