Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Shiro and ADF Essentials

user11690515Sep 3 2015 — edited Sep 4 2015

Hi everyone,

I'm working with ADF-Essentials 12c, JDeveloper 12.1.3.0.0, and trying to implement Shiro Security Framework. I migrate application from 11g.

When deploying my Oracle ADF application to a standalone Weblogic server through an EAR file, requesting a JSF page (Login.jsf page) causes the server to go into an infinite loop (http://127.0.0.1:7101/SEG-PRESENTACION/faces/Ingreso?_afrLoop=95182030681050&_afrWindowMode=0&Adf-Window-Id=w0)

As I said, I'm using Shiro framework for security. My shiro.ini is next

[main]

user = Filtro.FacesAjaxAwareUserFilter

shiro.loginUrl = /faces/Ingreso

user.loginUrl = /faces/Ingreso

# DataSource config

ds = org.apache.shiro.jndi.JndiObjectFactory

ds.requiredType = javax.sql.DataSource

ds.resourceName = jdbc/SGF_DEMODS

# JDBC realm config

jdbcRealm = org.apache.shiro.realm.jdbc.JdbcRealm

jdbcRealm.permissionsLookupEnabled = true

# Configure JDBC realm SQL queries.

jdbcRealm.authenticationQuery = SELECT usuario_pass FROM seg_usuario WHERE usuario_nombre = ?

jdbcRealm.userRolesQuery = SELECT rol_codrol FROM seg_rol, seg_rolus, seg_usuario WHERE seg_rol.rol_codrol = seg_rolus.rolus_codrol and seg_usuario.usuario_codus = seg_rolus.rolus_codus and seg_usuario.usuario_nombre = ?

jdbcRealm.permissionsQuery = SELECT pagina_url FROM seg_pagina, seg_rolpag, seg_rol WHERE seg_pagina.pagina_nopag = seg_rolpag.rolpag_nopag and seg_rol.rol_codrol = seg_rolpag.rolpag_codrol and seg_rol.rol_codrol = ?

jdbcRealm.dataSource = $ds

ehCacheFactory = Beans.EhCacheFactory

ssoCacheManager = org.apache.shiro.cache.ehcache.EhCacheManager

ssoCacheManager.cacheManager = $ehCacheFactory

securityManager.cacheManager = $ssoCacheManager

sessionManager = org.apache.shiro.web.session.mgt.DefaultWebSessionManager

sessionDAO = org.apache.shiro.session.mgt.eis.EnterpriseCacheSessionDAO

sessionManager.sessionDAO = $sessionDAO

securityManager.sessionManager = $sessionManager

cookie = org.apache.shiro.web.servlet.SimpleCookie

cookie.name = SSOcookie

cookie.path = /

cookie.secure = true

cookie.httpOnly = true

securityManager.sessionManager.sessionIdCookie = $cookie  <-----------------------------WHEN I ADD THIS LINE TO SHIRO.INI IS WHEN SERVER GOES INTO AN INFINITE LOOP

[urls]

/faces/IMAGENES/** = anon

/faces/Ingreso = anon

/faces/LOGIN/** = anon

/faces/Parametros/** = user

The log is not showing any error

Target URL -- http://127.0.0.1:7101/SEG-PRESENTACION/faces/Ingreso

<03-sep-2015 17H54' CST> <Warning> <Socket> <BEA-000449> <Closing the socket, as no data read from it on 127.0.0.1:62.367 during the configured idle timeout of 5 seconds.>

What I've done:

-Disabled Trinidad Filter

-Add sessionDescriptor in Weblogic.xml but no luck either.

<session-descriptor>

        <cookie-name>SSOCOOKIE</cookie-name>

</session-descriptor>

I've been googling around but without any luck!

Can someone illuminate me on this? Why is this happening.

Thank you for your answers.

This post has been answered by kdario on Sep 4 2015
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 2 2015
Added on Sep 3 2015
8 comments
1,411 views