Del Mié, 01/10/2014 - 22:17 por LNi3to
En Java - WEB
Llegados a este punto, toca crear las JSPs de acceso y las HOMEs para los usuarios administradores y empleados.
Para crear la JSP de acceso a la aplicación seguiremos las recomendaciones de Spring Security y la crearemos tal cual aparece reflejada en la documentación. Al utilizar el formulario predefinido, los nombre de los parámetro y el action deben respetarse ya que son los que el framework espera recibir. En caso de fallo en el proceso de autenticación, el usuario será devuelto a esta misma página.
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Insert title here</title> </head> <body> <h3>login page</h3> <% if ( session.getAttribute("SPRING_SECURITY_LAST_EXCEPTION")!= null) { %> <label class="error">Error en proceso login</label> <% } session.removeAttribute("SPRING_SECURITY_LAST_EXCEPTION"); %> <form class="navbar-form navbar-right" name="f" method="post" action="<%=request.getContextPath() %>/j_spring_security_check"> <div class="form-group"> <input type="text" class="form-control" id="j_username" name="j_username" /> </div> <div class="form-group"> <input type="password" class="form-control" name="j_password"> </div> <button type="submit" class="btn btn-success">Entra!</button> </form> </body> </html>
Una vez ejecutemos la aplicación desde nuestro servidor, la página de inicio quedaría así:
Vamos a crear ahora las páginas de inicio para los usuarios autenticados: administradores y empleados. Ambas serán de momento similares (cambiaremos los textos para identificarlas), y estarán en rutas diferentes. El aspecto que tendrán es el siguiente:
A estas páginas solo se puede llegar si se pasa por el proceso de autenticación de Spring Security de manera correcta. Si se intenta acceder directamente a estas páginas, el framework rechazará la petición y devolverá la página de login.
Una vez probada la funcionalidad básica, vamos a recuperar desde la JSP de inicio para usuarios administradores, algunos de los atributos de los adicionales que incluimos en el modelo de datos de nuestro ejemplo.
Para esto nos aprovecharemos de que Spring Security brinda una biblioteca de etiquetas bastante completa para interactuar con la información de seguridad. Usaremos esta taglib para acceder a la información de usuario de seguridad SecurityUser y para controlar el acceso desde la propia JSP a determinada funcionalidad en función de los roles del mismo.
En este caso, vamos a mostrar los atributos adicionales "nombre" y "apellidos" del usuario. Además verificaremos si el usuario tiene el rol "ROLE_STAFF", para brindarle, en ese caso, el acceso directo a la página de inicio de los usuarios empleados.
El código de la páginas WEB-INF/jsp/foradmins/index.jsp una vez efectuadas las adecuaciones quedaría así:
<%@ page language="java" contentType="text/html; charset=ISO-8859-1" pageEncoding="ISO-8859-1"%> <%@ taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core" %> <%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %> <!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> <html> <head> <meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"> <title>Inicio página de administradores</title> </head> <body> <h3>Página de inicio solo para administradores</h3> <strong><sec:authentication property="principal.username"/></strong> conectado <a href="<c:url value="/j_spring_security_logout"/>">Cerrar sesión</a> <p> Nombre y apellidos del usuario conectado: <strong> <sec:authentication property="principal.nombre"/> <sec:authentication property="principal.apellidos"/> </strong> </p> <sec:authorize access="hasRole('ROLE_ADMIN')"> <p> Usted tiene acceso además al <a href="<c:url value="/secured/stf/index.htm"/>">Portal de Empleados</a> </p> </sec:authorize> </body> </html>
Una vez ejecutemos la aplicación desde nuestro servidor y nos autentiquemos correctamente con las siguiente credenciales de acceso: usuario/contraseña = usuario_administrador/123, visualizaremos la página de inicio para usuarios administradores:
Y ahora sólo nos resta descargar el proyecto con los recursos utilizados en el ejemplo que hemos implementado juntos.
Continúa en: Descarga del proyecto Spring con los recursos utilizados en el ejemplo
X Cerrar Más información Esta web utiliza cookies para mejorar la experiencia de usuario. Si continúas navegando consideramos que aceptas su uso.