I am working on a JMS issue reported by Guillaume. He reported that a secured weblogic jms can not be accessed with the
current JMS transport.

The reason seems to be that Weblogic seems to establish a security context on the thread when the InitialContext is opened.
It will remove that context when the InitialContext is closed.

https://issues.apache.org/jira/browse/CXF-6742

The problem is that we currently only create the InitialContext when retrieving the ConnectionFactory or when looking up a Destination from JNDI close it directly after. For most jms providers this seems to be fine but weblogic complains with a SecurityException when the Consumer is opened outside that context. A similar problem also appears on the sending side.

I have now committed a first part of the proposed change from Guillaume. It makes sure the InitialContext is opened before on creating the Consumer on the listener threads of the MessageListenerContainer. This seems to work fine and should not have a big performance impact.

The problem is rather on the client side. We currently open a new session and producer for each message we send. This is not a big problem as both of these objects are cheap to create. It will be different though if we also need to make sure an InitialContext is open. I am not sure but I assume that creating an InitialContext might involve a remote connection and so it might impact the performance quite
severly.

Does anyone have experience with secured Weblogic and possible performance impacts?
Are there better solutions ?

Christian


--
Christian Schneider
http://www.liquid-reality.de

Open Source Architect
http://www.talend.com

Reply via email to