[ 
https://issues.apache.org/jira/browse/CAMEL-4329?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Claus Ibsen resolved CAMEL-4329.
--------------------------------

       Resolution: Fixed
    Fix Version/s: 2.9.0
                   2.8.1

Thanks for the detailed report

> Username/password ignored when connectionFactory is set in JMS component
> ------------------------------------------------------------------------
>
>                 Key: CAMEL-4329
>                 URL: https://issues.apache.org/jira/browse/CAMEL-4329
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-jms
>    Affects Versions: 2.8.0
>         Environment: irrelevant
>            Reporter: Sergey Zolotaryov
>            Assignee: Claus Ibsen
>             Fix For: 2.8.1, 2.9.0
>
>
> There is a conflict between 2 properties: connectionFactory and 
> username/password. If I set both the connectionFactory wins and jms endpoint 
> uses connection factory that is unaware of username/password specified for 
> the endpoint. 
> We need to use both - we have different systems and use different connections 
> factories with different username/passwords.
> Let's assume I have a setup with 2 connection factories jmsConnectionFactory1 
> and jmsConnectionFactory2 and an endpoint 
> jms:queue:myQueue?connectionFactory=jmsConnectionFactory2&username=myuser&password=secret,
>  here is what happens:
> I see that in JmsComponent:133 you retrieve the first ConnectionFactory 
> (jmsConnectionFactory1) found in Spring.
> Then in JmsComponent:414 you create a delegating ConnectionFactory which 
> always uses username/password (with jmsConnectionFactory1) and set it to the 
> endpoint.
> Then in JmsComponent:434 you finally set the right ConnectionFactory 
> (jmsConnectionFactory2) to the endpoint, though the username/password are 
> lost forever.
> I have solved it for our project by implementing a clone of JmsComponent with 
> overriden createEndpoint. Move line 434 
> [setProperties(endpoint.getConfiguration(), parameters);] a the line 
> immediately after 407 [String password = getAndRemoveParameter(parameters, 
> "password", String.class);]

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to