javax.jms.JMSSecurityException: User: Null is NOT authentica
hari_mails Oct 27, 2004 12:44 AMI'm using JBoss 4.0 and Oracle 9i.
when I'm using default server(hypersonic) for jms it is working but when I'm shifting to Oracle it is giving the following error.
javax.jms.JMSSecurityException: User: Null is NOT authenticated
at org.jboss.mq.security.SecurityManager.authenticate(SecurityManager.java:215)
at org.jboss.mq.security.ServerSecurityInterceptor.authenticate(ServerSecurityInterceptor.java:51)
at org.jboss.mq.server.TracingInterceptor.authenticate(TracingInterceptor.java:781)
at org.jboss.mq.server.JMSServerInvoker.authenticate(JMSServerInvoker.java:287)
at org.jboss.mq.il.jvm.JVMServerIL.authenticate(JVMServerIL.java:301)
at org.jboss.mq.Connection.authenticate(Connection.java:1153)
at org.jboss.mq.Connection.(Connection.java:248)
at org.jboss.mq.SpyConnection.(SpyConnection.java:55)
at org.jboss.mq.SpyConnectionFactory.createConnection(SpyConnectionFactory.java:108)
at org.jboss.mq.SpyConnectionFactory.createQueueConnection(SpyConnectionFactory.java:129)
at org.jboss.ejb.plugins.jms.DLQHandler.createService(DLQHandler.java:154)
at org.jboss.system.ServiceMBeanSupport.jbossInternalCreate(ServiceMBeanSupport.java:237)
at org.jboss.system.ServiceMBeanSupport.create(ServiceMBeanSupport.java:164)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.innerCreate(JMSContainerInvoker.java:545)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker.startService(JMSContainerInvoker.java:767)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$ExceptionListenerImpl.onException(JMSContainerInvoker.java:1272)
at org.jboss.ejb.plugins.jms.JMSContainerInvoker$1.run(JMSContainerInvoker.java:779)
The things that which I have done is :
Copied Oracle's JDBC driver .zip file /jdbc/lib/classes12.zip to the server/default/lib directory.
modifed the oracle-ds.xml configuration file, the <driver-class/> and <connection-url/> settings.
Next, modified the standardjbosscmp-jdbc.xml and copied into jboss_home/server/default/deploy directoy by setting the and <datasource-mapping> elements to use Oracle:
<jbosscmp-jdbc>
java:/OracleDS
<datasource-mapping>Oracle8</datasource-mapping>
</jbosscmp-jdbc>
Next modified login-config.xml to use Oracle. Added the following <application-policy> element to login-config.xml:
<application-policy name = "OracleDbRealm">
<login-module code =
"org.jboss.resource.security.ConfiguredIdentityLoginModule"
flag = "required">
<module-option name = "principal">sa</module-option>
<module-option name = "userName">sa</module-option>
<module-option name = "password"></module-option>
<module-option name ="managedConnectionFactoryName">
jboss.jca:service=LocalTxCM,name=OracleDS
</module-option>
</login-module>
</application-policy>
next changed the state manager oracle-jdbc-state-service.xml
<depends optional-attribute-name="ConnectionManager">jboss.jca:service=LocalTxCM,name=OracleDS
Additionally, In conf/login-config.xml changed dsJndiName.
<!-- Security domain for JBossMQ -->
<application-policy name = "jbossmq">
<login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule"
flag = "required">
<module-option name = "unauthenticatedIdentity">guest</module-option>
<module-option name = "dsJndiName">java:/OracleDS</module-option>
<module-option name = "principalsQuery">SELECT PASSWD FROM JMS_USERS WHERE USERID=?</module-option>
<module-option name = "rolesQuery">SELECT ROLEID, 'Roles' FROM JMS_ROLES WHERE USERID=?</module-option>
</login-module>
</application-policy>
and finally in MDB, jboss.xml the following is written
jboss>
<enterprise-beans>
<message-driven>
<ejb-name>SampleMDB</ejb-name>
<destination-jndi-name>queue/testQueue</destination-jndi-name>
</message-driven>
</enterprise-beans>
<resource-managers>
</resource-managers>
But I'm getting the error as mentioned aboue.
Should I need to add something elsewhere.
Thank in advance,
Regards,
Hari