And then on the broker side, here is the log that I snipped out -- I turned up the logging level in the logging.properties to DEBUG from INFO level.
I see the userName that I passed from my camel producer bean when I instantiate the ActiveMQConnectionFactory. I re-read the http://activemq.apache.org/security.html again. I verified that I had imported the ldif into my opends, I changed the LDAPAuthorizationMap back to match the one on the security.html page. <authorizationPlugin> <map> <bean id="lDAPAuthorizationMap" class="org.apache.activemq.security.LDAPAuthorizationMap" xmlns="http://www.springframework.org/schema/beans"> <property name="initialContextFactory" value="com.sun.jndi.ldap.LdapCtxFactory"/> <property name="connectionURL" value="ldap://localhost:389"/> <property name="authentication" value="simple"/> <property name="connectionUsername" value="cn=mqbroker,ou=Services,dc=acme,dc=com"/> <property name="connectionPassword" value="password"/> <property name="connectionProtocol" value="s"/> <property name="topicSearchMatchingFormat" value="cn={0},ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="topicSearchSubtreeBool" value="true"/> <property name="queueSearchMatchingFormat" value="cn={0},ou=Queue,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="advisorySearchBase" value="cn=ActiveMQ.Advisory,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="tempSearchBase" value="cn=ActiveMQ.Temp,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="queueSearchSubtreeBool" value="true"/> <property name="adminBase" value="(cn=admin)"/> <property name="adminAttribute" value="member"/> <property name="readBase" value="(cn=read)"/> <property name="readAttribute" value="member"/> <property name="writeBase" value="(cn=write)"/> <property name="writeAttribute" value="member"/> </bean> </map> </authorizationPlugin> DEBUG | Setting up new connection id: ID:WSW710119-63884-1350596295369-1:1, address: tcp://127.0.0.1:63885, info: ConnectionInfo {commandId = 1, responseRequired = true, connectionId = ID:WSW710119-63884-1350596295369-1:1, clientId = ID:WSW710119-63884-1350596295369-0:1, clientIp = null, userName = cn=Directory Manager, password = *****, brokerPath = null, brokerMasterConnector = false, manageable = true, clientMaster = true, faultTolerant = false, failoverReconnect = false} WARN | Failed to add Connection ID:WSW710119-63884-1350596295369-1:1, reason: java.lang.SecurityException: User is not authenticated. DEBUG | Exception detail: java.lang.SecurityException: User is not authenticated. at org.apache.activemq.security.AuthorizationBroker.addDestination(AuthorizationBroker.java:59) at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151) at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:481) at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:533) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:464) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:459) at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:72) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) at org.apache.activemq.broker.util.LoggingBrokerPlugin.addConnection(LoggingBrokerPlugin.java:190) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:715) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79) at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150) at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204) at java.lang.Thread.run(Thread.java:662) DEBUG | Error occured while processing sync command: ConnectionInfo {commandId = 1, responseRequired = true, connectionId = ID:WSW710119-63884-1350596295369-1:1, clientId = ID:WSW710119-63884-1350596295369-0:1, clientIp = tcp://127.0.0.1:63885, userName = cn=Directory Manager, password = *****, brokerPath = null, brokerMasterConnector = false, manageable = true, clientMaster = true, faultTolerant = false, failoverReconnect = false}, exception: java.lang.SecurityException: User is not authenticated. java.lang.SecurityException: User is not authenticated. at org.apache.activemq.security.AuthorizationBroker.addDestination(AuthorizationBroker.java:59) at org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151) at org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:481) at org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:533) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:464) at org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:459) at org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:72) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) at org.apache.activemq.broker.util.LoggingBrokerPlugin.addConnection(LoggingBrokerPlugin.java:190) at org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) at org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) at org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:715) at org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79) at org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) at org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292) at org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150) at org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) at org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) at org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229) at org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204) at java.lang.Thread.run(Thread.java:662) DEBUG | Transport Connection to: tcp://127.0.0.1:63885 failed: java.io.EOFException java.io.EOFException at java.io.DataInputStream.readInt(DataInputStream.java:375) at org.apache.activemq.openwire.OpenWireFormat.unmarshal(OpenWireFormat.java:275) at org.apache.activemq.transport.tcp.TcpTransport.readCommand(TcpTransport.java:229) at org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:221) at org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204) at java.lang.Thread.run(Thread.java:662) So then I switched to activemq 5.7.0. I used this current activemq.xml -- this is the plugins section. <plugins> <authorizationPlugin> <map> <bean id="lDAPAuthorizationMap" class="org.apache.activemq.security.LDAPAuthorizationMap" xmlns="http://www.springframework.org/schema/beans"> <property name="initialContextFactory" value="com.sun.jndi.ldap.LdapCtxFactory"/> <property name="connectionURL" value="ldap://localhost:389"/> <property name="authentication" value="simple"/> <property name="connectionUsername" value="cn=mqbroker,ou=Services,dc=acme,dc=com"/> <property name="connectionPassword" value="password"/> <property name="connectionProtocol" value="s"/> <property name="topicSearchMatchingFormat" value="cn={0},ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="topicSearchSubtreeBool" value="true"/> <property name="queueSearchMatchingFormat" value="cn={0},ou=Queue,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="queueSearchSubtreeBool" value="true" /> <property name="advisorySearchBase" value="cn=ActiveMQ.Advisory,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="tempSearchBase" value="cn=ActiveMQ.Temp,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> <property name="adminBase" value="(cn=admin)"/> <property name="adminAttribute" value="member"/> <property name="readBase" value="(cn=read)"/> <property name="readAttribute" value="member"/> <property name="writeBase" value="(cn=write)"/> <property name="writeAttribute" value="member"/> </bean> </map> </authorizationPlugin> </plugins> I noticed a few documentation inconsistencies. topicSearchMatching is not writable -- so I assumed topicSearchMatchingFormat is correct -- I forgot where i saw that one. queueSearchMatchingFormat has the same issue. Then on the producer side, I tried using the entries that were created by the ldif. So I tried userName being "cn=admin" or "admin", or "cn=Directory Manager" -- all of them results in the user not being authenticated. Any ideas? On Thu, Oct 18, 2012 at 2:27 PM, Sean K <sk92...@gmail.com> wrote: > I havent tried that yet. > > But I think I am getting closer. > > I took a vanilla activemq 5.6.0 bundle zip and expanded it on a > windows7 machine, and added only this section for the LDAP. > > The OpenDS 2.2.1 is also running on the same machine. > > > Now, when I made my non-ssl producer connect to the broker, it says > that the user is not authenticated. > > My producer is a simple camel producer basically driven from this xml. > Then I run the producer using : mvn camel:run > > I think I need to configure the OpenDS more to handle ActiveMQ but I > am not sure how. Any ideas? > > > > <authorizationPlugin> > <map> > <bean id="lDAPAuthorizationMap" > class="org.apache.activemq.security.LDAPAuthorizationMap" > xmlns="http://www.springframework.org/schema/beans"> > <property name="initialContextFactory" > value="com.sun.jndi.ldap.LdapCtxFactory"/> > <property name="connectionURL" > value="ldap://localhost:389"/> > <property name="authentication" value="simple"/> > <property name="connectionUsername" > value="cn=Directory Manager"/> > <property name="connectionPassword" value="password"/> > <property name="connectionProtocol" value="s"/> > <property name="topicSearchMatchingFormat" > > value="cn={0},ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> > <property name="topicSearchSubtreeBool" value="true"/> > <property name="queueSearchMatchingFormat" > > value="cn={0},ou=Queue,ou=Destination,ou=ActiveMQ,ou=system"/> > <property name="advisorySearchBase" > > value="cn=ActiveMQ.Advisory,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> > <property name="tempSearchBase" > > value="cn=ActiveMQ.Temp,ou=Topic,ou=Destination,ou=ActiveMQ,ou=system"/> > <property name="queueSearchSubtreeBool" value="true"/> > <property name="adminBase" > value="(cn=all-servers,cn=Server Groups,cn=admin data)"/> > <property name="adminAttribute" value="member"/> > <property name="readBase" > value="(cn=all-servers,cn=Server Groups,cn=admin data)"/> > <property name="readAttribute" value="member"/> > <property name="writeBase" > value="(cn=all-servers,cn=Server Groups,cn=admin data)"/> > <property name="writeAttribute" value="member"/> > </bean> > </map> > </authorizationPlugin> > > > > > INFO [DefaultQuartzScheduler-camel-1_Worker-1] (JobRunShell.java:221) > - Job DEFAULT.quartz-endpoint1 threw a JobExecutionException: > org.quartz.JobExecutionException: > org.springframework.jms.UncategorizedJmsException: Uncategorized > exception occured during JMS processing; nested exception is > javax.jms.JMSException: User is not authenticated. [See nested > exception: org.springframework.jms.UncategorizedJmsException: > Uncategorized exception occured during JMS processing; nested > exception is javax.jms.JMSException: User is not authenticated.] > at > org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:117) > at > org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:54) > at org.quartz.core.JobRunShell.run(JobRunShell.java:216) > at > org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) > Caused by: org.springframework.jms.UncategorizedJmsException: > Uncategorized exception occured during JMS processing; nested > exception is javax.jms.JMSException: User is not authenticated. > at > org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) > at > org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469) > at > org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:187) > at > org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:387) > at > org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:341) > at > org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:132) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120) > at > org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292) > at > org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330) > at > org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220) > at > org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) > at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) > at > org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) > at > org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) > at > org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) > at > org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) > at > org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) > at > org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:44) > at > org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) > at > org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:71) > at > org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:113) > ... 3 more > Caused by: javax.jms.JMSException: User is not authenticated. > at > org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) > at > org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1362) > at > org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1466) > at > org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:308) > at > org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) > at > org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:457) > ... 43 more > Caused by: java.lang.SecurityException: User is not authenticated. > at > org.apache.activemq.security.AuthorizationBroker.addDestination(AuthorizationBroker.java:59) > at > org.apache.activemq.broker.MutableBrokerFilter.addDestination(MutableBrokerFilter.java:151) > at > org.apache.activemq.broker.region.RegionBroker.send(RegionBroker.java:481) > at > org.apache.activemq.broker.jmx.ManagedRegionBroker.send(ManagedRegionBroker.java:305) > at > org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:533) > at > org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:464) > at > org.apache.activemq.advisory.AdvisoryBroker.fireAdvisory(AdvisoryBroker.java:459) > at > org.apache.activemq.advisory.AdvisoryBroker.addConnection(AdvisoryBroker.java:72) > at > org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) > at > org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) > at > org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) > at > org.apache.activemq.broker.util.LoggingBrokerPlugin.addConnection(LoggingBrokerPlugin.java:190) > at > org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) > at > org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) > at > org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:715) > at > org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79) > at > org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) > at > org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292) > at > org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150) > at > org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) > at > org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) > at > org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229) > at > org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) > at > org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222) > at > org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204) > at java.lang.Thread.run(Thread.java:662) > > > > <beans xmlns="http://www.springframework.org/schema/beans" > xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" > xsi:schemaLocation=" > http://www.springframework.org/schema/beans > http://www.springframework.org/schema/beans/spring-beans-3.0.xsd > http://camel.apache.org/schema/spring > http://camel.apache.org/schema/spring/camel-spring.xsd"> > > <bean id="jms" class="org.apache.camel.component.jms.JmsComponent"> > <property name="connectionFactory"> > <bean class="org.apache.activemq.ActiveMQConnectionFactory"> > <property name="brokerURL" > value="tcp://localhost:61616" /> > <property name="userName" value="cn=Directory > Manager" /> > <property name="password" value="password" /> > </bean> > </property> > </bean> > > <bean id="myUriMaker" class="com.foo.camel.jms.QueueUriMaker"/> > > <bean id="myRouter" class="com.foo.camel.jms.MyProducer"> > > <property name="brokerName" ref="brokerNameLookup" /> > <property name="producerName" ref="producerNameLookup" /> > <property name="postLogger" ref="producerLogger" /> > > <property name="uri" value="jms:queue:prescriptions" /> > <property name="quartz" > value="quartz://com.foo.camel.quartz.producer/MyQuartz" /> > <property name="repeatInterval" value="1000" /> > <property name="repeatCount" value="0" /> > <property name="fireNow" value="true" /> > </bean> > <bean id="downloadLogger" class="com.foo.camel.jms.DownloadLogger"/> > <bean id="producerLogger" class="com.foo.camel.jms.ProducerLogger"/> > <bean id="brokerNameLookup" > class="com.foo.camel.jms.BrokerNameLookup"/> > <bean id="producerNameLookup" > class="com.foo.camel.jms.ProducerNameLookup"/> > <bean id="consumerNameLookup" > class="com.foo.camel.jms.ConsumerNameLookup"/> > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <routeBuilder ref="myRouter"/> > </camelContext> > > > <!-- > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <route> > <from uri="file:src/data?noop=true"/> > <process ref="downloadLogger"/> > <to uri="jms:queue:incomingOrders"/> > <process ref="producerLogger"/> > </route> > </camelContext> > --> > > <!-- > > <camelContext xmlns="http://camel.apache.org/schema/spring"> > <packageScan> > <package>com.foo.camel.jms.routes</package> > <excludes>**.*Test*</excludes> > <includes>**.*</includes> > </packageScan> > </camelContext> > --> > > </beans> > > > > > > On Wed, Oct 17, 2012 at 9:18 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> Hi >> >> Have you tried with the ActiveMQ 5.7.0 release? >> >> >> On Wed, Oct 17, 2012 at 2:09 AM, Sean K <sk92...@gmail.com> wrote: >>> Hi, >>> I am working with the documentation on the activemq site for >>> configuring the LDAP. >>> >>> http://activemq.apache.org/security.html -- almost everything is >>> copied verbatim except for hostnames and there were a few parameters >>> that were not writable by the current bean so I remove them -- for >>> example the writeAttributePrefix. >>> >>> I am using apache activemq-5.6.0 which is running on ubuntu. >>> >>> It is trying to connect to the opends 2.2.1 running on a Windows 7 >>> machine. I imported the ldif into the openDS through the admin >>> console so that these dc and ou would match. >>> >>> I start up the activemq broker -- all is fine. >>> When I start the producer to send messages to the broker, then errors >>> occur (on bottom) >>> >>> In the producer log, there is some indicator -- about an option key >>> being expected at line 40, which I dont see how. >>> >>> I also attached the login.config file. >>> >>> Any ideas anyone? >>> >>> <plugins> >>> <jaasAuthenticationPlugin configuration="LdapConfiguration" >>> /> >>> >>> <authorizationPlugin> >>> <map> >>> >>> >>> <bean >>> xmlns="http://www.springframework.org/schema/beans" >>> id="lDAPAuthorizationMap" >>> >>> class="org.apache.activemq.security.LDAPAuthorizationMap"> >>> >>> <property name="initialContextFactory" >>> value="com.sun.jndi.ldap.LdapCtxFactory"/> >>> <property name="connectionURL" >>> value="ldap://WSW710119:389"/> >>> <property name="authentication" >>> value="simple"/> >>> <property name="connectionUsername" >>> value="cn=mqbroker,ou=Services,dc=acme,dc=com"/> >>> <property name="connectionPassword" >>> value="password"/> >>> <property name="connectionProtocol" >>> value="s"/> >>> <property name="topicSearchSubtreeBool" >>> value="true" /> >>> >>> >>> <property name="queueSearchSubtreeBool" >>> value="true"/> >>> <property name="adminBase" >>> value="(cn=admin)"/> >>> <property name="adminAttribute" >>> value="member"/> >>> <property name="readBase" value="(cn=read)"/> >>> <property name="readAttribute" >>> value="member"/> >>> <property name="writeBase" >>> value="(cn=write)"/> >>> <property name="writeAttribute" >>> value="member"/> >>> </bean> >>> </map> >>> </authorizationPlugin> >>> >>> >>> </plugins> >>> >>> >>> And the contents of login.conf : >>> >>> >>> LdapConfiguration { >>> >>> org.apache.activemq.jaas.LDAPLoginModule required >>> >>> debug=true >>> >>> initialContextFactory=com.sun.jndi.ldap.LdapCtxFactory >>> >>> connectionURL="ldap://WSW710119:389" >>> >>> connectionUsername="cn=mqbroker,ou=Services,dc=acme,dc=com" >>> >>> connectionPassword=password >>> >>> connectionProtocol=s >>> >>> authentication=simple >>> >>> userBase="ou=User,ou=ActiveMQ,ou=systems,dc=acme,dc=com" >>> >>> userRoleName=dummyUserRoleName >>> >>> userSearchMatching="(uid={0})" >>> >>> userSearchSubtree=false >>> >>> roleBase="ou=Groups,ou=ActiveMQ,ou=systems,dc=acme,dc=com" >>> >>> roleName=cn >>> >>> roleSearchMatching="(member=uid={1})" >>> >>> roleSearchSubtree=true >>> >>> }; >>> >>> >>> <<<< this is the broker logs>>>>> >>> 2012-10-16 16:57:16,098 | WARN | Failed to add Connection >>> ID:centos-test1.foo.com-43128-1350431835402-1:2, reason: >>> java.lang.SecurityException: User name [null] or password is invalid. >>> | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: >>> ssl:///127.0.0.1:44983 >>> 2012-10-16 16:57:16,100 | WARN | Failed to add Connection >>> ID:centos-test1.foo.com-43128-1350431835402-1:3, reason: >>> java.lang.SecurityException: User name [null] or password is invalid. >>> | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: >>> ssl:///127.0.0.1:44982 >>> 2012-10-16 16:57:16,108 | WARN | Failed to add Connection >>> ID:centos-test1.foo.com-43128-1350431835402-1:1, reason: >>> java.lang.SecurityException: User name [null] or password is invalid. >>> | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: >>> ssl:///127.0.0.1:44981 >>> 2012-10-16 16:57:16,152 | WARN | Transport Connection to: >>> tcp://127.0.0.1:44982 failed: java.io.EOFException | >>> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ >>> Transport: ssl:///127.0.0.1:44982 >>> 2012-10-16 16:57:16,171 | WARN | Transport Connection to: >>> tcp://127.0.0.1:44983 failed: java.io.EOFException | >>> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ >>> Transport: ssl:///127.0.0.1:44983 >>> 2012-10-16 16:57:16,180 | WARN | Transport Connection to: >>> tcp://127.0.0.1:44981 failed: java.io.EOFException | >>> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ >>> Transport: ssl:///127.0.0.1:44981 >>> 2012-10-16 16:57:16,613 | WARN | Failed to add Connection >>> ID:centos-test1.foo.com-43128-1350431835402-1:4, reason: >>> java.lang.SecurityException: User name [null] or password is invalid. >>> | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: >>> ssl:///127.0.0.1:44984 >>> 2012-10-16 16:57:16,632 | WARN | Transport Connection to: >>> tcp://127.0.0.1:44984 failed: java.io.EOFException | >>> org.apache.activemq.broker.TransportConnection.Transport | ActiveMQ >>> Transport: ssl:///127.0.0.1:44984 >>> 2012-10-16 16:57:17,585 | WARN | Failed to add Connection >>> ID:centos-test1.foo.com-43128-1350431835402-1:5, reason: >>> java.lang.SecurityException: User name [null] or password is invalid. >>> | org.apache.activemq.broker.TransportConnection | ActiveMQ Transport: >>> ssl:///127.0.0.1:44985 >>> >>> >>> <<<<this is the error that come back through the producer >>>>>> >>> ]. Caused by: [org.quartz.JobExecutionException - >>> org.springframework.jms.UncategorizedJmsException: Uncategorized >>> exception occured during JMS processing; nested exception is >>> javax.jms.JMSException: User name [null] or password is invalid.] >>> INFO [DefaultQuartzScheduler-camel-1_Worker-3] (JobRunShell.java:221) >>> - Job DEFAULT.quartz-endpoint1 threw a JobExecutionException: >>> org.quartz.JobExecutionException: >>> org.springframework.jms.UncategorizedJmsException: Uncategorized >>> exception occured during JMS processing; nested exception is >>> javax.jms.JMSException: User name [null] or password is invalid. [See >>> nested exception: org.springframework.jms.UncategorizedJmsException: >>> Uncategorized exception occured during JMS processing; nested >>> exception is javax.jms.JMSException: User name [null] or password is >>> invalid.] >>> at >>> org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:117) >>> at >>> org.apache.camel.component.quartz.CamelJob.execute(CamelJob.java:54) >>> at org.quartz.core.JobRunShell.run(JobRunShell.java:216) >>> at >>> org.quartz.simpl.SimpleThreadPool$WorkerThread.run(SimpleThreadPool.java:549) >>> Caused by: org.springframework.jms.UncategorizedJmsException: >>> Uncategorized exception occured during JMS processing; nested >>> exception is javax.jms.JMSException: User name [null] or password is >>> invalid. >>> at >>> org.springframework.jms.support.JmsUtils.convertJmsAccessException(JmsUtils.java:316) >>> at >>> org.springframework.jms.support.JmsAccessor.convertJmsAccessException(JmsAccessor.java:168) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:469) >>> at >>> org.apache.camel.component.jms.JmsConfiguration$CamelJmsTemplate.send(JmsConfiguration.java:187) >>> at >>> org.apache.camel.component.jms.JmsProducer.doSend(JmsProducer.java:387) >>> at >>> org.apache.camel.component.jms.JmsProducer.processInOnly(JmsProducer.java:341) >>> at >>> org.apache.camel.component.jms.JmsProducer.process(JmsProducer.java:132) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.SendProcessor$2.doInAsyncProducer(SendProcessor.java:120) >>> at >>> org.apache.camel.impl.ProducerCache.doInAsyncProducer(ProducerCache.java:292) >>> at >>> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:115) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.processor.interceptor.TraceInterceptor.process(TraceInterceptor.java:91) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.processErrorHandler(RedeliveryErrorHandler.java:330) >>> at >>> org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:220) >>> at >>> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.processor.interceptor.DefaultChannel.process(DefaultChannel.java:303) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:117) >>> at org.apache.camel.processor.Pipeline.process(Pipeline.java:80) >>> at >>> org.apache.camel.processor.RouteContextProcessor.processNext(RouteContextProcessor.java:45) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.processor.UnitOfWorkProcessor.processAsync(UnitOfWorkProcessor.java:150) >>> at >>> org.apache.camel.processor.UnitOfWorkProcessor.process(UnitOfWorkProcessor.java:117) >>> at >>> org.apache.camel.processor.RouteInflightRepositoryProcessor.processNext(RouteInflightRepositoryProcessor.java:48) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.processNext(DelegateAsyncProcessor.java:99) >>> at >>> org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:90) >>> at >>> org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:73) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:73) >>> at >>> org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:44) >>> at >>> org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:99) >>> at >>> org.apache.camel.processor.loadbalancer.QueueLoadBalancer.process(QueueLoadBalancer.java:71) >>> at >>> org.apache.camel.component.quartz.QuartzEndpoint.onJobExecute(QuartzEndpoint.java:113) >>> ... 3 more >>> Caused by: javax.jms.JMSException: User name [null] or password is invalid. >>> at >>> org.apache.activemq.util.JMSExceptionSupport.create(JMSExceptionSupport.java:49) >>> at >>> org.apache.activemq.ActiveMQConnection.syncSendPacket(ActiveMQConnection.java:1362) >>> at >>> org.apache.activemq.ActiveMQConnection.ensureConnectionInfoSent(ActiveMQConnection.java:1466) >>> at >>> org.apache.activemq.ActiveMQConnection.createSession(ActiveMQConnection.java:308) >>> at >>> org.springframework.jms.support.JmsAccessor.createSession(JmsAccessor.java:196) >>> at >>> org.springframework.jms.core.JmsTemplate.execute(JmsTemplate.java:457) >>> ... 43 more >>> Caused by: java.lang.SecurityException: User name [null] or password is >>> invalid. >>> at >>> org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:83) >>> at >>> org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:85) >>> at >>> org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:91) >>> at >>> org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:715) >>> at >>> org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:79) >>> at >>> org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:139) >>> at >>> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:292) >>> at >>> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:150) >>> at >>> org.apache.activemq.transport.MutexTransport.onCommand(MutexTransport.java:50) >>> at >>> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113) >>> at >>> org.apache.activemq.transport.AbstractInactivityMonitor.onCommand(AbstractInactivityMonitor.java:229) >>> at >>> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:83) >>> at >>> org.apache.activemq.transport.tcp.SslTransport.doConsume(SslTransport.java:91) >>> at >>> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:222) >>> at >>> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:204) >>> at java.lang.Thread.run(Thread.java:662) >>> Caused by: java.lang.SecurityException: Configuration Error: >>> Line 40: expected [option key] >>> at com.sun.security.auth.login.ConfigFile.<init>(ConfigFile.java:93) >>> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native >>> Method) >>> at >>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39) >>> at >>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27) >>> at java.lang.reflect.Constructor.newInstance(Constructor.java:513) >>> at java.lang.Class.newInstance0(Class.java:355) >>> at java.lang.Class.newInstance(Class.java:308) >>> at >>> javax.security.auth.login.Configuration$3.run(Configuration.java:247) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> javax.security.auth.login.Configuration.getConfiguration(Configuration.java:242) >>> at >>> javax.security.auth.login.LoginContext$1.run(LoginContext.java:237) >>> at java.security.AccessController.doPrivileged(Native Method) >>> at >>> javax.security.auth.login.LoginContext.init(LoginContext.java:234) >>> at >>> javax.security.auth.login.LoginContext.<init>(LoginContext.java:403) >>> at >>> org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:75) >>> ... 15 more >>> Caused by: java.io.IOException: Configuration Error: >>> Line 40: expected [option key] >>> at com.sun.security.auth.login.ConfigFile.match(ConfigFile.java:520) >>> at >>> com.sun.security.auth.login.ConfigFile.parseLoginEntry(ConfigFile.java:406) >>> at >>> com.sun.security.auth.login.ConfigFile.readConfig(ConfigFile.java:350) >>> at com.sun.security.auth.login.ConfigFile.init(ConfigFile.java:262) >>> at com.sun.security.auth.login.ConfigFile.init(ConfigFile.java:202) >>> at com.sun.security.auth.login.ConfigFile.<init>(ConfigFile.java:91) >>> ... 29 more >> >> >> >> -- >> Claus Ibsen >> ----------------- >> Red Hat, Inc. >> FuseSource is now part of Red Hat >> Email: cib...@redhat.com >> Web: http://fusesource.com >> Twitter: davsclaus >> Blog: http://davsclaus.com >> Author of Camel in Action: http://www.manning.com/ibsen