You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@activemq.apache.org by "jolly.Wang" <wa...@163.com> on 2010/05/20 11:21:31 UTC
does ActiveMQ-CPP 3.x support JAAS Authentication
the version : ActiveMQ 5.3.0, activemq-cpp 3.1.0
When I use a c++ client to connect the broker, the broker got these
exceptions:
---------------------------------------------------------------------------------------------
java.lang.SecurityException: User name or password is invalid.
at
org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:83)
at
org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
at
org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:89)
at
org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:666)
at
org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:83)
at
org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:134)
at
org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:297)
at
org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:175)
at
org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
at
org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
at
org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
at
org.apache.activemq.transport.TransportLogger.onCommand(TransportLogger.java:114)
at
org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
at
org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
at
org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
at java.lang.Thread.run(Unknown Source)
---------------------------------------------------------------------------------------------
but when i use the same username and password in a JMS client, that
situation is ok!
the activemq.xml's main part as following:
----------------------------------------------------------------------------------
<transportConnectors>
<transportConnector name="openwire"
uri="tcp://172.20.2.21:61616?trace=true"/>
</transportConnectors>
<jaasAuthenticationPlugin configuration="activemq-domain" />
<authorizationPlugin>
<map>
<authorizationMap>
<authorizationEntries>
<authorizationEntry topic=">" read="admins" write="admins"
admin="admins" />
<authorizationEntry queue=">" read="admins" write="admins"
admin="admins" />
</authorizationEntries>
</authorizationMap>
</map>
</authorizationPlugin>
----------------------------------------------------------------------------------
cms::Connection* ActiveMQConnectionFactory::createConnection(
const std::string& username,
const std::string& password )
throw ( cms::CMSException )
----------------------------------------------------------------------------------
bool AMQClient::connectBroker(const string& uri, const string& username,
const string& password)
{
try{
auto_ptr<ConnectionFactory> connectionFactory(
ConnectionFactory::createCMSConnectionFactory(uri) );
connection = connectionFactory->createConnection(username, password);
...
calls like this:
connection = connectionFactory->createConnection("admin", "hello");
------------------------------------------------------------------------------------------------
Does activemq-cpp's ConnectionFactory::createConnection() support JAAS
authentication, or I use a activemq-cpp in a wrong way? Thanks a lot!!
--
View this message in context: http://old.nabble.com/does-ActiveMQ-CPP-3.x-support-JAAS-Authentication-tp28618860p28618860.html
Sent from the ActiveMQ - User mailing list archive at Nabble.com.
Re: does ActiveMQ-CPP 3.x support JAAS Authentication
Posted by Timothy Bish <ta...@gmail.com>.
On Thu, 2010-05-20 at 02:21 -0700, jolly.Wang wrote:
> the version : ActiveMQ 5.3.0, activemq-cpp 3.1.0
>
> When I use a c++ client to connect the broker, the broker got these
> exceptions:
>
> ---------------------------------------------------------------------------------------------
>
> java.lang.SecurityException: User name or password is invalid.
> at
> org.apache.activemq.security.JaasAuthenticationBroker.addConnection(JaasAuthenticationBroker.java:83)
> at
> org.apache.activemq.broker.BrokerFilter.addConnection(BrokerFilter.java:82)
> at
> org.apache.activemq.broker.MutableBrokerFilter.addConnection(MutableBrokerFilter.java:89)
> at
> org.apache.activemq.broker.TransportConnection.processAddConnection(TransportConnection.java:666)
> at
> org.apache.activemq.broker.jmx.ManagedTransportConnection.processAddConnection(ManagedTransportConnection.java:83)
> at
> org.apache.activemq.command.ConnectionInfo.visit(ConnectionInfo.java:134)
> at
> org.apache.activemq.broker.TransportConnection.service(TransportConnection.java:297)
> at
> org.apache.activemq.broker.TransportConnection$1.onCommand(TransportConnection.java:175)
> at
> org.apache.activemq.transport.TransportFilter.onCommand(TransportFilter.java:68)
> at
> org.apache.activemq.transport.WireFormatNegotiator.onCommand(WireFormatNegotiator.java:113)
> at
> org.apache.activemq.transport.InactivityMonitor.onCommand(InactivityMonitor.java:210)
> at
> org.apache.activemq.transport.TransportLogger.onCommand(TransportLogger.java:114)
> at
> org.apache.activemq.transport.TransportSupport.doConsume(TransportSupport.java:84)
> at
> org.apache.activemq.transport.tcp.TcpTransport.doRun(TcpTransport.java:203)
> at
> org.apache.activemq.transport.tcp.TcpTransport.run(TcpTransport.java:185)
> at java.lang.Thread.run(Unknown Source)
>
> ---------------------------------------------------------------------------------------------
>
> but when i use the same username and password in a JMS client, that
> situation is ok!
>
> the activemq.xml's main part as following:
>
> ----------------------------------------------------------------------------------
> <transportConnectors>
> <transportConnector name="openwire"
> uri="tcp://172.20.2.21:61616?trace=true"/>
> </transportConnectors>
>
> <jaasAuthenticationPlugin configuration="activemq-domain" />
>
> <authorizationPlugin>
> <map>
> <authorizationMap>
> <authorizationEntries>
> <authorizationEntry topic=">" read="admins" write="admins"
> admin="admins" />
> <authorizationEntry queue=">" read="admins" write="admins"
> admin="admins" />
> </authorizationEntries>
> </authorizationMap>
> </map>
> </authorizationPlugin>
>
> ----------------------------------------------------------------------------------
>
> cms::Connection* ActiveMQConnectionFactory::createConnection(
> const std::string& username,
> const std::string& password )
> throw ( cms::CMSException )
>
> ----------------------------------------------------------------------------------
> bool AMQClient::connectBroker(const string& uri, const string& username,
> const string& password)
> {
> try{
> auto_ptr<ConnectionFactory> connectionFactory(
> ConnectionFactory::createCMSConnectionFactory(uri) );
> connection = connectionFactory->createConnection(username, password);
> ...
>
> calls like this:
> connection = connectionFactory->createConnection("admin", "hello");
> ------------------------------------------------------------------------------------------------
>
> Does activemq-cpp's ConnectionFactory::createConnection() support JAAS
> authentication, or I use a activemq-cpp in a wrong way? Thanks a lot!!
AFAIK it should work, I'd suggest you try the latest release of AMQCPP
3.1.2 and if that doesn't work then open an issue and attach a test case
and broker config.
Regards
Tim.
--
Tim Bish
Open Source Integration: http://fusesource.com
ActiveMQ in Action: http://www.manning.com/snyder/
Follow me on Twitter: http://twitter.com/tabish121
My Blog: http://timbish.blogspot.com/