<div dir="ltr"><div class="gmail_extra"><br><div class="gmail_quote">2013/12/21 Dennis Jacobfeuerborn <span dir="ltr"><<a href="mailto:djacobfeuerborn@gmail.com" target="_blank">djacobfeuerborn@gmail.com</a>></span><br>

<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr">The problem is that technically I need to change the message format to "<publisher>.<key> <value>" so the consumer can know where to store the keys but for security reasons I cannot really rely on the publisher sending the correct data so I really need to insert the <publisher> bit on the broker side based on the username the publisher connects with. For example:<br>

<br>- Publisher connects with the credentials "publisher1"/(some password)<br>- Publisher sends message "mykey myvalue" to exchange X<br>- Exchange X modifies the message and prepends a string containing the username resulting in the message "publisher1.mykey myvalue"<br>

- Consumer receives the message and can store the data in the appropriate place<br><br>Is there a way to accomplish this or something similar with rabbitmq?</div></blockquote></div><div><br></div><div>What you want to do can be accomplished with a custom exchange (a plugin written in Erlang,</div>

<div>which implements an API with about 4-6 functions) or you could just add an intermediary consumer</div><div>that's written in any that that republishes valid messages to another exchange.</div><div><br></div><div>

A couple more things I'd recommend:<br><br clear="all"><div> * Don't make routing keys too smart (encode too much information into them)</div><div> * Use message headers or payload (serialized as JSON, Protocol Buffers or similar) if you need to pass more info</div>

</div><div><br></div><div>HTH.</div>-- <br>MK<br><br><a href="http://github.com/michaelklishin" target="_blank">http://github.com/michaelklishin</a><br><a href="http://twitter.com/michaelklishin" target="_blank">http://twitter.com/michaelklishin</a><br>


</div></div>