Bug 59245 - JMS Point to Point custom request headers
Summary: JMS Point to Point custom request headers
Status: NEW
Alias: None
Product: JMeter
Classification: Unclassified
Component: Main (show other bugs)
Version: unspecified
Hardware: All All
: P2 enhancement (vote)
Target Milestone: ---
Assignee: JMeter issues mailing list
URL:
Keywords:
Depends on:
Blocks:
 
Reported: 2016-03-29 13:48 UTC by mdiianni
Modified: 2016-08-05 15:22 UTC (History)
2 users (show)



Attachments
jmsclient snippet (2.91 KB, text/plain)
2016-03-30 09:01 UTC, mdiianni
Details

Note You need to log in before you can comment on or make changes to this bug.
Description mdiianni 2016-03-29 13:48:38 UTC
Increasing security threads force service providers to increase security levels on their backend applications to communicate across the network.

Publishing and Subscribing to message queues requires more and more the use of TLS security to validate source and destination of the messages (signing). Some companies or developers has opted for including a custom header on the JMS request with a signature which is a valid approach but not possible to test it using JMeter as custom headers are not allowed yet on JMS Point to Point sampler.

The only way to test the service so far is to disable TLS or include a JSR223 Pre-processor to deal with it, but actually building a pre-processor means re-implement the whole JMS Point to Point sampler which is a bit of a nonsense.

Thank you,
Maurizio
Comment 1 Philippe Mouawad 2016-03-29 19:39:46 UTC
Hello,
So that your request is clear for us, could you attach your JSR223 preprocessor code ?
AFAIU JMS Header as of 1.1 are restricted to :
JMSCorrelationId
JMSMessageId
JMSTimestamp
JMSType
JMSExpiration
JMSPriority
JMSDestination 


Message header field references are restricted to JMSDeliveryMode, JMSPriority, JMSMessageID, JMSTimestamp, JMSCorrelationID, and JMSType.
JMSMessageID, JMSCorrelationID, and JMSType values may be null and if so are treated as a NULL value. 

What is the Header that you need to add ?
Thanks for clarification
Comment 2 mdiianni 2016-03-30 09:00:54 UTC
Hi Phillipe, thanks your reply,

Basically I'm trying to run a test injecting messages into a JMS queue using JMeter Point-to-Point Sampler using Request Only mode (fire and forget).

On application side, provider has implemented a solution using Apache ServiceMix stack which implements ActiveMQ, Camel, CXF and Karaf. 

Camel in this case is handling the signing and verification on application side using camel:crypto (http://camel.apache.org/crypto.html). What is does is generate a message signature and put it into the 'CamelDigitalSignature' JMS header.

So far, I don't have yet a preprocessor to handle this yet, still work in progress.

Attached there is a java snippet with the skeleton of what I have done so far to sign the message, I still need to sort out adding the header and send the jms request.
Comment 3 mdiianni 2016-03-30 09:01:42 UTC
Created attachment 33711 [details]
jmsclient snippet