Enjoy A New Student Discount All 55,000 Courses on sale for Only $12.99

Ends in 05h 23m 49s

Empezando con Spring Security

Spring Security, es una parte del sistema Spring orientado a facilitar los métodos de :

  • Autenticación: verificamos la identidad del usuario.
  • Autorización: tipo de permisos que tiene ese usuario.

Esto significa, que previa configuración, nos va a permitir identificar al usuario que está accediendo, y a identificar que permisos tiene, permitiéndonos controlar así, lo que puede hacer en nuestro aplicativo.

Spring Security tiene muchas posibilidades y distintas formas de trabajar; hasta tiene sus propias tablas de usuarios y roles. Nosotros, en cambio queremos presentar paso a paso como podemos añadir seguridad a nuestra web, desde solo un usuario y contraseña, hasta la inclusion de un fichero de usuarios.

Para todo ello, vamos a utilizar el ejemplo que estamos construyendo, y que teneis en YouTube, y en Github, y que es «Los Cines», descrito en https://recursosformacion.com/2023/10/vision-de-conjunto-con-spring/

2. Añadiendo seguridad a un proyecto

2.1 Inclusión de dependencias

Para conseguir trabajar con Spring Security, nos basta abrir nuestro fichero pom.xml e indicar las dependencias. Básicamente, consiste en añadir las líneas:

                <!-- Añadiendo Spring Security -->
		<dependency>
			<groupId>org.springframework.boot</groupId>
			<artifactId>spring-boot-starter-security</artifactId>
		</dependency>
		<!-- fin Spring Security -->

Tan solo con esto, en la próxima ejecución veréis que en la consola aparece un nuevo mensaje

Ahora, podéis dirigiros con un navegador a vuestra dirección:

http://localhost:8001 (es la direccion y puerto en el que estábamos trabajando

y veréis que ya aparece una pantalla de login,


Solicitando un usuario, que debe ser “user” y una contraseña, que será la que apareció en el log anterior, y que en mi caso era a2ccf8fd-19b7-42d5-b192-1bb56bee5ee5

2.2 El proyecto

Naturalmente, si habéis entrado usuario y contraseña. Os encontrareis que intentara bifurcar a una página que no existe, ya que no tenemos ningún controlador, y, por otra parte, esta estructura no vale en la realidad, ya que la contraseña cambia cada vez que se lanza el proceso, y los usuarios no tienen acceso a esta consola, por lo que vamos a construir un pequeño controlador, y vamos, también a definir un usuario y una contraseña estable

2.3 Definición de usuario y contraseña

Si solo necesito un usuario y una contraseña, puedo utilizar la forma más sencilla de Spring Security, que me permite indicar en el fichero application.properties dos líneas

  • spring.security.user.name=miguel
  • spring.security.user.password=1234

Como veis, he definido como usuario miguel, y como contraseña 1234

Pero, nuestra seguridad está en entredicho, ya que si lo hago asi, esta informacion va a subir a GitHub en la primera liberación que haga, entonces, y siguiendo lo que estábamos haciendo ya anteriormente, voy a escribir en el documento secret.properties, que ya habíamos utilizado, y que esta protegido de subir a github, por medio de .gitignore

  • USER_SECURITY=miguel
  • PASSWORD_SECURITY=1234

Y ahora, ya puedo escribir en application.properties

  • spring.security.user.name=${USER_SECURITY}
  • spring.security.user.password=${PASSWORD_SECURITY}

2.5 Probando nuestro trabajo

Si queréis probar, comprobareis que, no os permitirá ir a ninguna ruta sin indicar el usuario y la password

2.5.1 Probando en un navegador

Tal y como hicimos antes, podéis teclear la ruta en el navegador, por ejemplo http://localhost:8001/api/cine, y os presentará la pantalla de login

Tecleamos el usuario y la contraseña (Hemos indicado miguel y 1234) y vereis que automaticamente bifurca a la pagina prevista

2.5.2 Probando con Postman

Nuestra aplicación se desarrolló como API, por lo que las pruebas con navegador, solo ha sido para entrar en contexto; nos interesa principalmente las pruebas con Postman, y para ello, podemos hacer una llamada tipo , por ejemplo, la que haríamos para ver la lista de cines

Pero esta vez, añadimos en la pestaña «Authorization» el usuario y la contraseña, como Basic Auth, y esta vez al enviar, ya recibimos un 200 (sin la authorization, seria un 401) y los datos

Y esta es nuestra primera version…Nos queda mucho or delante, como memorizar mas de un usuario, trabajar con fichero de usuarios, JWT… y voy a ir mostrando cada uno de ello, garantizado, suscribiros a YouTube y podreis comprobarlo

Teneis todo en Github aqui: https://github.com/recursosformacion/SpringYouTube/tree/100-security/CrudLosCines

En YouTube

Deja un comentario

/*Si te ha gustado el artículo
no dudes en compartirlo*/

Facebook
Twitter
LinkedIn

Uso de cookies

Este sitio web utiliza cookies para que usted tenga la mejor experiencia de usuario. Si continúa navegando está dando su consentimiento para la aceptación de las mencionadas cookies y la aceptación de nuestra política de cookies, pinche el enlace para mayor información.plugin cookies

ACEPTAR
Aviso de cookies

Ver mi IP

Ver ip de mi máquina
tipo valor
Ip: 3.237.15.145
Proxy: 3.237.15.145
Remote host: ec2-3-237-15-145.compute-1.amazonaws.com
Remote port: 57938
** 3.237.15.145, 172.70.42.113