Uploaded image for project: 'Teiid'
  1. Teiid
  2. TEIID-1799

teiid fails to work when the datasource han an encrypted password created with PBEUtils

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Cannot Reproduce
    • Icon: Major Major
    • None
    • 7.1.1
    • JDBC Connector
    • None
    • Hide

      Install the SOA suite and the EDS components as per normal.
      Use JBoss Developer Studio to create two datasources and configure them in a VDB; deploy the VDB and test with the SQL scrapbook.
      Once this is working, stop SOA.
      Then follow the procedure as documented in https://access.redhat.com/kb/docs/DOC-19884
      for all datasources used by the VDB.

      Note that you will need multiple application-policy with a different setting for domain=ServerMasterPassword
      Use the modified name in the MBean in the datasource file.
      You can of course use a single server.password file.

      Start SOA and connect via the SQL scrapbook again. This time a query will fail, and in the server.log you will find ("myuser" being the username of the datasource being exercised with your query)

      2011-10-28 16:53:32,021 ERROR [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue1) Connector worker process failed for atomic-request=mbpF0FFphSOG.0.1.0
      java.lang.SecurityException: Unauthenticated caller:myuser
      at org.jboss.security.integration.JBossSecuritySubjectFactory.createSubject(JBossSecuritySubjectFactory.java:92)
      at org.jboss.resource.connectionmanager.BaseConnectionManager2.getSubject(BaseConnectionManager2.java:687)
      at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:495)
      at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941)
      at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89)
      at org.teiid.translator.jdbc.JDBCExecutionFactory.getConnection(JDBCExecutionFactory.java:245)
      at org.teiid.translator.jdbc.JDBCExecutionFactory.getConnection(JDBCExecutionFactory.java:80)
      at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:198)
      at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:281)
      at org.teiid.dqp.internal.process.DataTierTupleSource.access$000(DataTierTupleSource.java:71)
      at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:123)
      at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:120)
      at org.teiid.dqp.internal.process.DQPCore$FutureWork.run(DQPCore.java:107)
      at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188)
      at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:116)
      at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:290)
      at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
      at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
      at java.lang.Thread.run(Thread.java:662)

      Show
      Install the SOA suite and the EDS components as per normal. Use JBoss Developer Studio to create two datasources and configure them in a VDB; deploy the VDB and test with the SQL scrapbook. Once this is working, stop SOA. Then follow the procedure as documented in https://access.redhat.com/kb/docs/DOC-19884 for all datasources used by the VDB. Note that you will need multiple application-policy with a different setting for domain=ServerMasterPassword Use the modified name in the MBean in the datasource file. You can of course use a single server.password file. Start SOA and connect via the SQL scrapbook again. This time a query will fail, and in the server.log you will find ("myuser" being the username of the datasource being exercised with your query) 2011-10-28 16:53:32,021 ERROR [org.teiid.CONNECTOR] (Worker1_QueryProcessorQueue1) Connector worker process failed for atomic-request=mbpF0FFphSOG.0.1.0 java.lang.SecurityException: Unauthenticated caller:myuser at org.jboss.security.integration.JBossSecuritySubjectFactory.createSubject(JBossSecuritySubjectFactory.java:92) at org.jboss.resource.connectionmanager.BaseConnectionManager2.getSubject(BaseConnectionManager2.java:687) at org.jboss.resource.connectionmanager.BaseConnectionManager2.allocateConnection(BaseConnectionManager2.java:495) at org.jboss.resource.connectionmanager.BaseConnectionManager2$ConnectionManagerProxy.allocateConnection(BaseConnectionManager2.java:941) at org.jboss.resource.adapter.jdbc.WrapperDataSource.getConnection(WrapperDataSource.java:89) at org.teiid.translator.jdbc.JDBCExecutionFactory.getConnection(JDBCExecutionFactory.java:245) at org.teiid.translator.jdbc.JDBCExecutionFactory.getConnection(JDBCExecutionFactory.java:80) at org.teiid.dqp.internal.datamgr.ConnectorWorkItem.execute(ConnectorWorkItem.java:198) at org.teiid.dqp.internal.process.DataTierTupleSource.getResults(DataTierTupleSource.java:281) at org.teiid.dqp.internal.process.DataTierTupleSource.access$000(DataTierTupleSource.java:71) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:123) at org.teiid.dqp.internal.process.DataTierTupleSource$1.call(DataTierTupleSource.java:120) at org.teiid.dqp.internal.process.DQPCore$FutureWork.run(DQPCore.java:107) at org.teiid.dqp.internal.process.DQPWorkContext.runInContext(DQPWorkContext.java:188) at org.teiid.dqp.internal.process.ThreadReuseExecutor$RunnableWrapper.run(ThreadReuseExecutor.java:116) at org.teiid.dqp.internal.process.ThreadReuseExecutor$3.run(ThreadReuseExecutor.java:290) at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908) at java.lang.Thread.run(Thread.java:662)

      Encrypt the datasource password with procedure in
      https://access.redhat.com/kb/docs/DOC-19884

      the teiid VDB will throw "Unauthenticated caller"

      product jira: https://issues.jboss.org/browse/SOA-3534

            Unassigned Unassigned
            tfonteyn Tom Fonteyne (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved: