Para deshabilitar la infraestructura de gestión de roles y usuarios deberemos realizar dos pasos:
A continuación describimos el proceso y los ficheros que hay que modificar para desactivar por completo esta funcionalidad.
Para que el validador de Hibernate no intente comprobar si las clases que mapean las tablas de roles existen en base de datos, deberemos eliminar el paquete es.um.atica.[nombre_proyecto].security.entities.
Tras esta modificación deberemos borrar también el paquete es.um.atica.[nombre_proyecto].security.control que es el que contiene los manejadores que cargan los valores de esas tablas y la clase UmuPermissionStore en es.um.atica.[nombre_proyecto].security
Una vez eliminadas todas estas clases estaremos en disposición de reconfigurar el proyecto para que no intente cargarlas y/o acceder a ellas.
Para evitar que se intenten cargar los permisos deberemos crear una clase wrapper que nos permitirá anular la funcionalidad por defecto de UmuIdentityLoader que intenta cargar los roles del usuario que se ha logueado.
Para ello, crearemos dentro del paquete es.um.atica.p.security.authentication una clase con el siguiente código
package es.um.atica.p.security.authentication; import org.jboss.seam.annotations.Install; import org.jboss.seam.annotations.Name; import org.jboss.seam.annotations.intercept.BypassInterceptors; import es.um.atica.seam.security.UmuIdentityLoader; @Name("es.um.atica.security.umuIdentityLoader") @Install(precedence = Install.APPLICATION) @BypassInterceptors public class [MiProyecto]IndentityLoader extends UmuIdentityLoader { @Override protected void cargarDatosUsuario(){ //No se carga ninguna información de autorización } }
El primer paso que debemos dar es eliminar cualquier referencia a las clases que pudiera haber en nuestra aplicación, si ya hemos estado trabajando con ella. Una vez quitadas esas referencias deberemos comentar en el components.xml el siguiente código:
<security:jpa-identity-store user-class="es.um.atica.[nombre_proyecto].security.entities.Usuarios" role-class="es.um.atica.[nombre_proyecto].security.entities.Roles" /> <security:persistent-permission-resolver permission-store="#{umuPermissionStore}" />
A continuación, deberemos borrar del fichero menu_lateral.xhtml, en caso de que usemos la plantilla por defecto, el siguiente código:
<s:div> <ul class="nav nav-list"> <li id="admin"><a href="#" class="dropdown-toggle"> <i class="menu-icon fa fa-cogs" /> <span class="menu-text">#{messages['menu.administracion']}</span> <i class="fa fa-chevron-circle-down drop-icon" /> </a> <b class="arrow" /> <ul class="submenu"> <li id="subMenuPerfiles"> <p:commandLink ajax="false" action="#{menuManagerBean.clickAndKillLastConversation('/paginas/admin/gestionUsuarios.xhtml')}"> #{messages['menu.sub.gestusu']} </p:commandLink> </li> </ul> </li> </ul> </s:div>