Problemas com JBoss + JAAS [RESOLVIDO]

1 resposta
Rodrigo_Manhaes

Olá a todos,

estamos começando a utilizar o JAAS junto com o JBoss 4.0.4GA. Configuramos um DatabaseServerLoginModule, apontando para o nosso DataSource, com a principalQuery definida.

O deployment ocorre sem problemas. Porém, quando um EJB é acessado, ocorre uma exceção no cliente, cujo stack trace está abaixo:

Exception in thread "AWT-EventQueue-0" java.lang.reflect.UndeclaredThrowableException at $Proxy0.getSearchPoints(Unknown Source) at br.uenf.ururau.gui.crud.AbstractController.getSearchPoints(AbstractController.java:547) at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.getSearchPoints(DataFrameDirectorImpl.java:76) at br.uenf.ururau.gui.crud.SearchPanel.getSearchPoints(SearchPanel.java:233) at br.uenf.ururau.gui.crud.SearchPanel.initialize(SearchPanel.java:80) at br.uenf.ururau.gui.crud.SearchPanel.<init>(SearchPanel.java:65) at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.initialize(DataFrameDirectorImpl.java:42) at br.uenf.ururau.gui.crud.DataFrameDirectorImpl.<init>(DataFrameDirectorImpl.java:35) at br.uenf.ururau.gui.DataGUIFactory.getDirector(DataGUIFactory.java:34) at br.uenf.ururau.gui.crud.AbstractController.<init>(AbstractController.java:114) at br.uenf.academico.posgrad.gui.AreaConcentracaoController.<init>(AreaConcentracaoController.java:14) at br.uenf.academico.posgrad.gui.PrincipalFrame.createAreaConcentracaoFrame(PrincipalFrame.java:242) at br.uenf.academico.posgrad.gui.PrincipalFrame.access$4(PrincipalFrame.java:239) at br.uenf.academico.posgrad.gui.PrincipalFrame$5.actionPerformed(PrincipalFrame.java:84) at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1849) at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2169) at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420) at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258) at javax.swing.AbstractButton.doClick(AbstractButton.java:302) at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:1000) at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:1041) at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231) at java.awt.Component.processMouseEvent(Component.java:5488) at javax.swing.JComponent.processMouseEvent(JComponent.java:3126) at java.awt.Component.processEvent(Component.java:5253) at java.awt.Container.processEvent(Container.java:1966) at java.awt.Component.dispatchEventImpl(Component.java:3955) at java.awt.Container.dispatchEventImpl(Container.java:2024) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4212) at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3892) at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3822) at java.awt.Container.dispatchEventImpl(Container.java:2010) at java.awt.Window.dispatchEventImpl(Window.java:1774) at java.awt.Component.dispatchEvent(Component.java:3803) at java.awt.EventQueue.dispatchEvent(EventQueue.java:463) at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:242) at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:163) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:157) at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:149) at java.awt.EventDispatchThread.run(EventDispatchThread.java:110) Caused by: java.lang.ClassNotFoundException: org.firebirdsql.jdbc.FBSQLException at java.net.URLClassLoader$1.run(URLClassLoader.java:200) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:188) at java.lang.ClassLoader.loadClass(ClassLoader.java:306) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:268) at java.lang.ClassLoader.loadClass(ClassLoader.java:251) at org.jboss.remoting.loading.RemotingClassLoader.loadClass(RemotingClassLoader.java:50) at org.jboss.remoting.loading.ObjectInputStreamWithClassLoader.resolveClass(ObjectInputStreamWithClassLoader.java:139) at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1543) at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1465) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1698) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304) at java.io.ObjectInputStream.defaultReadFields(ObjectInputStream.java:1917) at java.io.ObjectInputStream.readSerialData(ObjectInputStream.java:1841) at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1718) at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1304) at java.io.ObjectInputStream.readObject(ObjectInputStream.java:349) at org.jboss.remoting.serialization.impl.java.JavaSerializationManager.receiveObject(JavaSerializationManager.java:128) at org.jboss.remoting.marshal.serializable.SerializableUnMarshaller.read(SerializableUnMarshaller.java:66) at org.jboss.remoting.transport.socket.SocketClientInvoker.transport(SocketClientInvoker.java:279) at org.jboss.remoting.RemoteClientInvoker.invoke(RemoteClientInvoker.java:143) at org.jboss.remoting.Client.invoke(Client.java:525) at org.jboss.remoting.Client.invoke(Client.java:488) at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:55) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.tx.ClientTxPropagationInterceptor.invoke(ClientTxPropagationInterceptor.java:61) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:55) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.remoting.IsLocalInterceptor.invoke(IsLocalInterceptor.java:65) at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101) at org.jboss.ejb3.stateless.StatelessRemoteProxy.invoke(StatelessRemoteProxy.java:102) ... 41 more
E no log do JBoss aparece uma warning:

11:46:44,375 WARN [JBossManagedConnectionPool] Destroying connection that could not be successfully matched: org.jboss.resource.connectionmanager.TxConnectionManager$TxConnectionEventListener@1c737be[state=NORMAL mc=org.firebirdsql.jca.FBManagedConnection@11f5ff9 handles=0 lastUse=1156949079937 permit=false trackByTx=false mcp=org.jboss.resource.connectionmanager.JBossManagedConnectionPool$OnePool@d60225 context=org.jboss.resource.connectionmanager.InternalManagedConnectionPool@26d8e6 xaResource=org.firebirdsql.jca.FBManagedConnection@11f5ff9 txSync=null]
Parece algo relacionado ao banco de dados, porém não conseguimos detectar o que estamos fazendo de errado.

A entrada em conf/login-config.xml no JBoss é

<application-policy name="UrurauSecurityDomain"> <authentication> <login-module code = "org.jboss.security.auth.spi.DatabaseServerLoginModule" flag = "required"> <module-option name = "dsJndiName">java:/UenfDS</module-option> <module-option name = "principalsQuery">SELECT UENF_USUARIO_SENHA FROM UENF_USUARIO WHERE UENF_USUARIO_LOGIN=?</module-option> </login-module> </authentication> </application-policy>
Agradeço muito qualquer ajuda.

1 Resposta

Rodrigo_Manhaes

O problema foi resolvido. Eu não havia indicado no login-config.xml um module-option com a query para a tabela de papéis (roles). Como pensamos em ir testando a tecnologia incrementalmente, não incluímos papéis de início. Porém, descobrimos que só funciona se for definido um module-option para os papéis.

Criado 30 de agosto de 2006
Ultima resposta 31 de ago. de 2006
Respostas 1
Participantes 1