[jboss-user] [JBoss Messaging] - Re: JBM and JAAS Client authentication
mskonda
do-not-reply at jboss.com
Thu Aug 2 04:20:30 EDT 2007
I am not sure if this is related or not - I was getting the same exception!
I have a test scenario: My MDB calls a Session EJB to do some work - The session EJB essentially uses the JmsXA CF to publish a message.
The MDB is authenticated properly (using the <mdb-user>, however, the security-domain is not working, which is another issue!) and calls the Session EJB. The ejb creates a connection successfully with a username and password however fails with the exact problem you have when creating a session (I am not sure why it's not failing on create connection though).
However, I *got* through the problem: I have changed the security domain policy for JmsXa to reflect my own application policy (the policy has been instantiated earlier during the application startup).
I am not sure whether it's a wrong doing or okay doing but I have a sneaky feeling that I'm breaking something.
Here's my JmsXa definition:
| <!-- JMS XA Resource adapter, use this to get transacted JMS in beans -->
| <tx-connection-factory>
| <jndi-name>JmsXA</jndi-name>
| <xa-transaction/>
| <rar-name>jms-ra.rar</rar-name>
| <connection-definition>org.jboss.resource.adapter.jms.JmsConnectionFactory</connection-definition>
| <config-property name="SessionDefaultType" type="java.lang.String">javax.jms.Topic</config-property>
| <config-property name="JmsProviderAdapterJNDI" type="java.lang.String">java:/DefaultJMSProvider</config-property>
| <max-pool-size>20</max-pool-size>
| <security-domain-and-application>java:/MyPolicy</security-domain-and-application>
| <!--security-domain-and-application>JmsXARealm</security-domain-and-application-->
| <depends>jboss.messaging:service=ServerPeer</depends>
| </tx-connection-factory>
|
The modified MyPolicy is defined in login-config.xml as below:
| <application-policy name="MyPolicy">
| <authentication>
| <login-module code="com.my.SecureLoginModule" flag="required">
| <module-option name="username">myself</module-option>
| <module-option name="password">Rqm8QqlcszYlZdf/eNDpx</module-option>
| <module-option name="securePropertiesFile">secure.properties.xml</module-option>
| <module-option name="managedConnectionFactoryName">jboss.jca:service=LocalTxCM,name=MyJMSDS</module-option>
| </login-module>
| </authentication>
| </application-policy>
|
Bear in mind this MyPolicy is instantiated earlier during Datasource deployment!
One thing I've noticed is that if I change <security-domain-and-application> in the JmsXa definition to use a new JmsXARealm (I've to modify the existing one as the existing JmsXARealm policy is using ConfiguredIdentityLoginModule) exactly same as above except the name, it doesn't work! I guess this is due to the fact that this particular policy is *not* instantiated by any other components.
Hope this might rub the salt!
Thanks
Madhu
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4069972#4069972
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4069972
More information about the jboss-user
mailing list