Boa tarde pessoal,
Por gentileza, estou tentando encontrar um tutorial jaas + glassfish, se alguem jah seguiu algum que funcionou e puder recomendar, eu agradeço.
[]'s
[quote=lucasmurata]Esse é otimo:
http://jeveaux.com/2009/autenticacao-e-autorizacao-jaas-com-jdbc-realm/[/quote]
Oi Lucas,
Voce jah conseguiu fazê-lo funcionar, se sim, qual a versão do Glassfish voce utilizou? Vlw ^^
[]'s
[quote=getAdicted][quote=lucasmurata]Esse é otimo:
http://jeveaux.com/2009/autenticacao-e-autorizacao-jaas-com-jdbc-realm/[/quote]
Oi Lucas,
Voce jah conseguiu fazê-lo funcionar, se sim, qual a versão do Glassfish voce utilizou? Vlw ^^
[]'s[/quote]
Sim, atualmente os meus sistemas usam JAAS com JDBC Realm em Glassfish 3.1.1. Toda autenticação/autorização é em cima de JAAS. Os usuarios e os grupos ficam registrados na base de dados. Este tutorial deu uma forcinha pra configurar.
[quote=lucasmurata][quote=getAdicted][quote=lucasmurata]Esse é otimo:
http://jeveaux.com/2009/autenticacao-e-autorizacao-jaas-com-jdbc-realm/[/quote]
Oi Lucas,
Voce jah conseguiu fazê-lo funcionar, se sim, qual a versão do Glassfish voce utilizou? Vlw ^^
[]'s[/quote]
Sim, atualmente os meus sistemas usam JAAS com JDBC Realm em Glassfish 3.1.1. Toda autenticação/autorização é em cima de JAAS. Os usuarios e os grupos ficam registrados na base de dados. Este tutorial deu uma forcinha pra configurar.[/quote]
Certo,
Eu vi os seus esforços aqui . Vou apanhar mais um pouquinho, saber que eh possível jah anima…
Obrigado por enquanto, amigo! =)
[]'s
Jah segui o tutorial de cabo a rabo, troquei diversas vezes a versão do server e nada, fora o stress emocional. ^^
Mesmo alterando o level do Log do Glassish, o erro continua muito genérico:
FINE: Skipping C:\DesenvolvimentoTcc\glassfish\glassfishv3\glassfish\domains\domain1\autodeploy\bundles because its name is in the list of files to ignore
FINE: Skipping C:\DesenvolvimentoTcc\glassfish\glassfishv3\glassfish\domains\domain1\autodeploy\bundles because its name is in the list of files to ignore
FINE: Skipping C:\DesenvolvimentoTcc\glassfish\glassfishv3\glassfish\domains\domain1\autodeploy\bundles because its name is in the list of files to ignore
FINEST: IN LOCK_SESSION: sess =null
FINEST: IN LOCK_SESSION: sess =null
FINEST: IN UNLOCK_SESSION: sess = null
FINEST: IN UNLOCK_SESSION: sess = null
FINEST: IN LOCK_SESSION: sess =null
FINEST: IN LOCK_SESSION: sess =null
FINEST: IN LOCK_SESSION: sess =null
FINE: Security checking request GET /project-to-learn-jaas/admin/ola.xhtml
FINE: Calling hasUserDataPermission()
FINE: [Web-Security][ hasUserDataPermission ] Principal: null ContextPath: /project-to-learn-jaas
FINE: [Web-Security] Policy Context ID was: project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] hasUserDataPermission perm: (“javax.security.jacc.WebUserDataPermission” “/admin/ola.xhtml” “GET”)
FINE: [Web-Security] hasUserDataPermission isGranted: true
FINE: [Web-Security] [ hasResourcePermission ] Principal: null ContextPath: /project-to-learn-jaas
FINE: [Web-Security] Policy Context ID was: project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] Codesource with Web URL: file:/project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] Checking Web Permission with Principals : null
FINE: [Web-Security] Web Permission = (“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”)
FINEST: JACC Policy Provider: PolicyWrapper.implies, context (project-to-learn-jaas/project-to-learn-jaas)- result was(false) permission ((“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”))
FINE: [Web-Security] hasResource isGranted: false
FINE: [Web-Security] hasResource perm: (“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”)
FINE: Calling authenticate()
FINE: Failed authenticate() test
FINEST: IN UNLOCK_SESSION: sess = null
FINE: Got encoding: ISO-8859-1
FINE: realWrite(b, 0, 972) com.sun.grizzly.tcp.Response@4b0405
FINEST: recycle()
FINE: recycle()
FINEST: IN LOCK_SESSION: sess =null
FINE: Security checking request GET /project-to-learn-jaas/admin/ola.xhtml
FINE: Calling hasUserDataPermission()
FINE: [Web-Security][ hasUserDataPermission ] Principal: null ContextPath: /project-to-learn-jaas
FINE: [Web-Security] Policy Context ID was: project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] hasUserDataPermission perm: (“javax.security.jacc.WebUserDataPermission” “/admin/ola.xhtml” “GET”)
FINE: [Web-Security] hasUserDataPermission isGranted: true
FINE: [Web-Security] [ hasResourcePermission ] Principal: null ContextPath: /project-to-learn-jaas
FINE: [Web-Security] Policy Context ID was: project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] Codesource with Web URL: file:/project-to-learn-jaas/project-to-learn-jaas
FINE: [Web-Security] Checking Web Permission with Principals : null
FINE: [Web-Security] Web Permission = (“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”)
FINEST: JACC Policy Provider: PolicyWrapper.implies, context (project-to-learn-jaas/project-to-learn-jaas)- result was(false) permission ((“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”))
FINE: [Web-Security] hasResource isGranted: false
FINE: [Web-Security] hasResource perm: (“javax.security.jacc.WebResourcePermission” “/admin/ola.xhtml” “GET”)
FINE: Calling authenticate()
FINE: Tomcat callback for authenticate user/password
FINE: usename = admin
FINEST: Processing login with credentials of type: class com.sun.enterprise.security.auth.login.common.PasswordCredential
FINE: Logging in user [admin] into realm: learn-jaas-realm using JAAS module: jdbcRealm
FINE: Login module initialized: class com.sun.enterprise.security.auth.login.JDBCLoginModule
FINER: loadClass(java.util.Vector)
FINER: Delegating to classloader1 org.glassfish.internal.api.DelegatingClassLoader@f1934c
FINER: Loading class from delegate
FINER: loadClass(java.lang.Object)
FINER: Delegating to classloader1 org.glassfish.internal.api.DelegatingClassLoader@f1934c
FINER: Loading class from delegate
FINE: ConnectorObjectFactory: Reference Class Name: com.sun.gjc.spi.DataSource
Type: poolName
Content: sisgappe
Type: rarName
Content: __ds_jdbc_ra
Name:jdbc/sisgappe
FINE: returning/found the resource adapter from connector registry__ds_jdbc_ra
FINE: isMCFCreated sisgappe - true
FINE: Returning the MCF from connector registry.
FINE: returning the connector registry
FINE: Creating plain ConnectionManager
FINE: isMCFCreated sisgappe - true
FINE: Returning the MCF from connector registry.
FINE: returning the connector registry
FINE: In createConnectionFactory(javax.resource.spi.ConnectionManager cxManager)
FINE: Connection Factory:com.sun.gjc.spi.jdbc40.DataSource40@6ac62
FINE: returning the connector registry
FINE: RAR5036:Resource reference is not defined for JNDI name [jdbc/sisgappe__nontx]
FINE: returning the connector registry
FINE: In equals
FINE: Found/returing Connector descriptor in connector registry.
FINE: ConnectionMgr: poolName sisgappe txLevel : 1
FINE: Returning noTxResourceManager
FINE: In getConnection
FINE: Starting Init SQL
FINE: Finished executing Init SQL
FINE: Returning noTxResourceManager
FINE: NoTxResourceManagerImpl :: enlistResource called
FINEST: IN UNLOCK_SESSION: sess = null
FINEST: IN UNLOCK_SESSION: sess = null
FINE: Returning noTxResourceManager
FINE: NoTxResourceManagerImpl :: delistResource called
FINE: In cleanup
FINE: Pool: resourceClosed: 2
FINE: Wait monitor is null
FINE: Pool: resourceFreed: 2
FINE: JAAS authentication aborted.
FINEST: doPasswordLogin fails
javax.security.auth.login.LoginException: Security Exception
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:870)
at javax.security.auth.login.LoginContext.access$000(LoginContext.java:203)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:698)
at javax.security.auth.login.LoginContext$4.run(LoginContext.java:696)
at java.security.AccessController.doPrivileged(Native Method)
at javax.security.auth.login.LoginContext.invokePriv(LoginContext.java:695)
at javax.security.auth.login.LoginContext.login(LoginContext.java:594)
at com.sun.enterprise.security.auth.login.LoginContextDriver.doPasswordLogin(LoginContextDriver.java:341)
at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:199)
at com.sun.enterprise.security.auth.login.LoginContextDriver.login(LoginContextDriver.java:152)
at com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:478)
at com.sun.web.security.RealmAdapter.authenticate(RealmAdapter.java:417)
at org.apache.catalina.authenticator.BasicAuthenticator.authenticate(BasicAuthenticator.java:169)
at com.sun.web.security.RealmAdapter.invokeAuthenticateDelegate(RealmAdapter.java:1126)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:580)
at org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:615)
at com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:97)
at com.sun.enterprise.web.PESessionLockingStandardPipeline.invoke(PESessionLockingStandardPipeline.java:85)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:185)
at org.apache.catalina.connector.CoyoteAdapter.doService(CoyoteAdapter.java:332)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:233)
at com.sun.enterprise.v3.services.impl.ContainerMapper.service(ContainerMapper.java:165)
at com.sun.grizzly.http.ProcessorTask.invokeAdapter(ProcessorTask.java:791)
at com.sun.grizzly.http.ProcessorTask.doProcess(ProcessorTask.java:693)
at com.sun.grizzly.http.ProcessorTask.process(ProcessorTask.java:954)
at com.sun.grizzly.http.DefaultProtocolFilter.execute(DefaultProtocolFilter.java:170)
at com.sun.grizzly.DefaultProtocolChain.executeProtocolFilter(DefaultProtocolChain.java:135)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:102)
at com.sun.grizzly.DefaultProtocolChain.execute(DefaultProtocolChain.java:88)
at com.sun.grizzly.http.HttpProtocolChain.execute(HttpProtocolChain.java:76)
at com.sun.grizzly.ProtocolChainContextTask.doCall(ProtocolChainContextTask.java:53)
at com.sun.grizzly.SelectionKeyContextTask.call(SelectionKeyContextTask.java:57)
at com.sun.grizzly.ContextTask.run(ContextTask.java:69)
at com.sun.grizzly.util.AbstractThreadPool$Worker.doWork(AbstractThreadPool.java:330)
at com.sun.grizzly.util.AbstractThreadPool$Worker.run(AbstractThreadPool.java:309)
at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.SecurityException
at javax.security.auth.login.LoginContext.invoke(LoginContext.java:871)
… 35 more
WARNING: Web login failed: Login failed: javax.security.auth.login.LoginException: Security Exception
FINE: Failed authenticate() test
FINEST: IN UNLOCK_SESSION: sess = null
FINE: Got encoding: ISO-8859-1
FINE: realWrite(b, 0, 972) com.sun.grizzly.tcp.Response@aa73e8
FINEST: recycle()
FINE: recycle()
FINE: Skipping C:\DesenvolvimentoTcc\glassfish\glassfishv3\glassfish\domains\domain1\autodeploy\bundles because its name is in the list of files to ignore
FINE: Skipping C:\DesenvolvimentoTcc\glassfish\glassfishv3\glassfish\domains\domain1\autodeploy\bundles because its name is in the list of files to ignore
… sugestões são bem vindas.
[]'s
Aleluia! Basta seguir com atenção o tutorial apontado pelo amigo que funciona.
[]'s
Soh para concluir,
A classe selecionada no pool de conexões independe da configuração do JAAS, portanto, eh possivel optar pela javax.sql.ConnectionPoolDataSource .
[]'s