0 Replies Latest reply on Oct 27, 2004 5:22 AM by hari krishna

    javax.jms.JMSSecurityException: User: Null is NOT authentica

    hari krishna Newbie

      I'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