Aquí está el archivo que pueden importar a postaman
postman_collection
¿Qué es Spring Security y cómo funciona su autenticación básica?
Spring Security es una poderosa herramienta que agrega una capa de seguridad a nuestras aplicaciones, protegiéndolas contra accesos no autorizados. Al agregar la dependencia de Spring Security a tu proyecto, se habilita una configuración de seguridad por defecto. Esta configuración genera automáticamente un usuario y una contraseña genérica que puedes utilizar para acceder a los servicios de tu aplicación de forma segura durante el desarrollo.
¿Cómo se utiliza la autenticación básica con Spring Security?
Por defecto, Spring Security utiliza Basic Authentication. Este tipo de autenticación requiere incluir en el encabezado de cada petición HTTP el término BASIC, seguido de un texto codificado en Base64 que combina el usuario y la contraseña separados por dos puntos. Te presentamos el paso a paso para entender el flujo de autenticación con Spring Security:
Realización de una petición GET sin autorización: Si realizas una petición GET a un recurso que requiere autenticación sin el encabezado adecuado, obtendrás una respuesta con estado 401, indicando falta de autorización.
Incorporación del encabezado Authorization: Si añades el encabezado Authorization con el formato BASIC y las credenciales correctas, recibirás una respuesta positiva con estado 200, proporcionando acceso al recurso deseado, como por ejemplo una lista de pizzas en este caso de estudio.
¿Cómo gestionar credenciales y debugging en Spring Security?
Cada vez que inicias tu aplicación, Spring Security genera una nueva contraseña por defecto, facilitando el proceso de desarrollo gracias a su seguridad dinámica. Verás esta contraseña en tu consola; puedes copiarla para realizar tus pruebas de autenticación en herramientas como Postman:
Por defecto, el usuario es `USER` y la contraseña es la generada aleatoriamente que aparece en la consola.
Además, puedes mejorar el debugging de tu aplicación ajustando los niveles de logging para obtener información detallada sobre cómo maneja Spring Security las peticiones. Puedes hacerlo agregando la siguiente línea a tu configuración:
logging.level.org.springframework.security.web=DEBUG
¿Cómo protege tu aplicación el Spring Security filter chain?
Spring Security incluye una cadena de filtros, conocida como Spring Security filter chain, que procesa cada petición de forma escalonada y en cascada. Estos filtros son los responsables de:
Es esencial comprender cómo se configuran y funcionan estos filtros ya que son la base de la seguridad en Spring.
Invierte tiempo explorando y experimentando con estas configuraciones. Esto te proporcionará una sólida base en seguridad para el desarrollo de aplicaciones con Spring. Y no olvides, conocer a fondo el funcionamiento de los sistemas de seguridad te otorgará confianza y competencia en tus proyectos futuros. ¡Sigue aprendiendo y mejorando tus habilidades!
Spring Security es una poderosa herramienta que agrega una capa de seguridad a nuestras aplicaciones, protegiéndolas contra accesos no autorizados. Al agregar la dependencia de Spring Security a tu proyecto, se habilita una configuración de seguridad por defecto. Esta configuración genera automáticamente un usuario y una contraseña genérica que puedes utilizar para acceder a los servicios de tu aplicación de forma segura durante el desarrollo.
Por defecto, Spring Security utiliza Basic Authentication. Este tipo de autenticación requiere incluir en el encabezado de cada petición HTTP el término BASIC, seguido de un texto codificado en Base64 que combina el usuario y la contraseña separados por dos puntos. Te presentamos el paso a paso para entender el flujo de autenticación con Spring Security:
Realización de una petición GET sin autorización: Si realizas una petición GET a un recurso que requiere autenticación sin el encabezado adecuado, obtendrás una respuesta con estado 401, indicando falta de autorización.
Incorporación del encabezado Authorization: Si añades el encabezado Authorization con el formato BASIC y las credenciales correctas, recibirás una respuesta positiva con estado 200, proporcionando acceso al recurso deseado, como por ejemplo una lista de pizzas en este caso de estudio.
Cada vez que inicias tu aplicación, Spring Security genera una nueva contraseña por defecto, facilitando el proceso de desarrollo gracias a su seguridad dinámica. Verás esta contraseña en tu consola; puedes copiarla para realizar tus pruebas de autenticación en herramientas como Postman:
Por defecto, el usuario es `USER` y la contraseña es la generada aleatoriamente que aparece en la consola.
Además, puedes mejorar el debugging de tu aplicación ajustando los niveles de logging para obtener información detallada sobre cómo maneja Spring Security las peticiones. Puedes hacerlo agregando la siguiente línea a tu configuración:
logging.level.org.springframework.security.web=DEBUG
Spring Security incluye una cadena de filtros, conocida como Spring Security filter chain, que procesa cada petición de forma escalonada y en cascada. Estos filtros son los responsables de:
Es esencial comprender cómo se configuran y funcionan estos filtros ya que son la base de la seguridad en Spring.
Invierte tiempo explorando y experimentando con estas configuraciones. Esto te proporcionará una sólida base en seguridad para el desarrollo de aplicaciones con Spring. Y no olvides, conocer a fondo el funcionamiento de los sistemas de seguridad te otorgará confianza y competencia en tus proyectos futuros. ¡Sigue aprendiendo y mejorando tus habilidades!
Aquí está el archivo que pueden importar a postaman
postman_collection
Para los que usan un application.yaml, fuera de la etiqueta spring: deben añadir
spring:
.....
logging:
level:
org.springframework.security.web.*: debug
logging.level.org.springframework.security.web.*=debug
Hola, a mí no me sale en consola los filtros de Spring Security; ya he puesto la línea
logging.level.org.springframework.security.web.*=debug
Salu2
Hola gracias por el curso. Una consulta: Donde puedo obtener la colleccion de postman?
Para los que lo estan haciendo en maven: <dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-security</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.security</groupId>
<artifactId>spring-security-test</artifactId>
<scope>test</scope>
</dependency>
Hola Alejandro. en mi caso, he colocado la dependencia, pero aun asi me sigue mostrando error 401
Spring Security proporciona autenticación por defecto a través de Basic Authentication. Al agregar la dependencia de Spring Security, se crea automáticamente un usuario y una contraseña que puedes utilizar para probar tus servicios. Para autenticarte, debes enviar un encabezado Authorization con el formato "Basic {usuario:contraseña en base64}". Si la autenticación es correcta, recibirás un estado 200 y el contenido solicitado; de lo contrario, un 401 indicando que no estás autorizado. Esta configuración es útil para asegurar tus aplicaciones desde el inicio.
✅
No tiene ninguna utilidad establecer el registro en nivel de debug si lo que nos vas a mostrar es un registro de nivel de info, el cuál ya salía sin agregar esa línea. Esto es confuso para el alumno, ya que le hace creer que esa línea es necesaria para ver la cadena de filtros. Si más adelante se aprovecha el nivel debug, considero que habría sido mejor agregarlo en la clase donde se visualizan registros de ese nivel. Saludos.