Apache Shiro – Configurar EhCacheManager

marzo 20, 2012

En un proyecto en el que utilizamos Apache Shiro, para la autenticación y autorización de usuarios, el proceso de verificación de permisos tardaba demasiado. Esto debido a que no habíamos configurado un CacheManager, lo que ocasionaba que se tuviera que realizar una consulta a la base de datos (dado que utilizamos un JdbcRealm) por cada llamada al método SecurityUtils.getSubject().isPermitted()

Para configurar como CacheManager una instancia de la clase EhCacheManager debes agregar primero la dependencia la librería shiro-ehcache

<dependency>
     <groupId>org.apache.shiro</groupId>
<artifactId>shiro-ehcache</artifactId>
     <version>1.2.0</version>
</dependency>

una vez hecho esto, configura el CacheManager en el archivo shiro.ini

cacheManager=org.apache.shiro.cache.ehcache.EhCacheManager
jdbcRealm.cacheManager=$cacheManager

Listo! con esto mejorará el rendimiento al verificar los permisos del usuario. Recuerda invalidar el caché mediante una llamada al método clearCachedAuthorizationInfo() cuando realices cambios a los permisos del usuario.

Fuentes:
http://shiro.apache.org/caching.html
http://shiro.apache.org/static/current/apidocs/org/apache/shiro/cache/ehcache/EhCacheManager.html
http://shiro.apache.org/session-management.html
 

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s

A %d blogueros les gusta esto: