Personalizar la página de Login

Clase 33 de 38Curso de Hibernate y Java Spring 2018

Para personalizar la página de Login de nuestra aplicación se deben tener en cuenta las siguientes consideraciones:

  • Es preferible no utilizar las tecnologías de Servlets y JSP dentro de un proyecto de Spring Boot debido a que se tiene algunas limitaciones.
  • Utilizaremos el motor de plantillas Thymeleaf que se integra muy bien con Spring.
  • Todo el contenido estático debe ser creado bajo el directorio src/main/resources/static como son las hojas de estilos, imágenes etc.
  • Todas las páginas web deben ser creadas bajo el directorio src/main/resources/templates

Teniendo en cuenta esta premisa vamos a construir nuestro Login. Para lo cual se tiene que realizar los siguientes pasos:

  1. Instalar la dependencia de Thymeleaf en nuestro pom.xml como se muestra a continuación:
Captura de pantalla 2018-12-26 a la(s) 12.28.12.png
  1. Crear un archivo de estilos llamado styles.css y colocarlo en un directorio llamado css bajo el directorio static:
Captura de pantalla 2018-12-26 a la(s) 12.29.18.png

Crear dos páginas web una que representará nuestro login y otro para la página de inicio bajo el directorio de templates, las cuales tendrán el nombre de login.html y home.html respectivamente:

Captura de pantalla 2018-12-26 a la(s) 12.30.17.png

En la página de login se utiliza el tag th:if para validar parámetro de error cuando las credenciales son incorrectas y presentar el mensaje configurado posteriormente en el controlador de login. Y también se utiliza el tag th:action para determinar a qué recurso se llamará para procesar la petición, el cual es el mismo. Adicionalmente es importante que los nombres de los campos de usuario y clave se llamen username y password.

  1. Crear un controlador de vista llamado LoginController.java para validar las peticiones relacionadas con la autentificación y colocarlo en un nuevo paquete llamado com.platzi.ereservation.vista.controllers.
Captura de pantalla 2018-12-26 a la(s) 12.33.20.png

En este controlador se validará dos peticiones la de login y la home a través de la ruta /app/login y /app/home respectivamente. Las cuales se configurarán el clase de seguridad a continuación.

  1. Modificar la clase BasicConfiguration.java que es la clase donde se configure los temas de seguridad para el soporte de Spring Security. En la cual se realizó lo siguiente:
  • Modificar el método configurar la página de login, error y satisfacción las cuales se enlaza con el controlador Login.
Captura de pantalla 2018-12-26 a la(s) 12.34.47.png
  • Configurar el método de autentificación, para lo cual utilizamos un método en memoria.
Captura de pantalla 2018-12-26 a la(s) 12.35.21.png
  • Configurar qué rutas de la aplicación se deben excluir del proceso de login, en la cual están todos los recursos estáticos configurados anteriormente.
Captura de pantalla 2018-12-26 a la(s) 12.36.12.png
  1. Eliminar las propiedades de seguridad relacionadas al nombre de usuario y password en el archivo application.properties. Debido a que se utilizará las definidas en el método de autentificación explicado anteriormente.

Una vez realizado estos pasos, se deberá ejecutar el build del proyecto y se tendrá los siguientes resultados:

Captura de pantalla 2018-12-26 a la(s) 12.36.58.png
Captura de pantalla 2018-12-26 a la(s) 12.37.22.png

Es importante mencionar que el código fuente relacionado a esta lectura la pueden encontrar en el siguiente repositorio.