Configuración de Seguridad con Spring Security y Basic Authentication
Clase 5 de 23 • Curso de Java Spring Security: Autenticación y Seguridad Web
Contenido del curso
- 5

Configuración de Seguridad con Spring Security y Basic Authentication
06:32 - 6

Funcionamiento del Basic Authentication Filter en Spring Security
11:50 - 7

Deshabilitar protección CSRF en APIs REST con Spring Security
07:28 - 8

Configuración de CORS en Spring Security para APIs y Frontend
12:11 - 9

Configuración de Reglas de Acceso en Spring Security
07:45 - 10

Creación de usuarios personalizados en Spring Security
07:07 - 11

Creación y Gestión de Roles y Permisos en Aplicaciones Web
05:48
- 12

Creación y Gestión de Usuarios en Base de Datos con Spring Security
04:50 - 13

Implementación de User Detail Service en Spring Security con MySQL
09:21 - 14

Asignación de Roles y Permisos en Spring Security
08:57 - 15

Permisos Específicos con Authorities en Spring Security
13:07 - 16

Seguridad de Métodos en Spring Security: Control de Accesos por Roles
06:19
- 17

Creación y Uso de JSON Web Tokens en Java con Auth0
09:05 - 18

Implementación de Autenticación con JSON Web Tokens en Spring Boot
15:45 - 19

Validación de JSON Web Tokens con Auth0 en Java
06:29 - 20

Creación de Filtro de Seguridad JWT en Spring Security
18:16 - 21

Implementación de JSON Web Token en Spring Security
11:58
¿Cómo podemos configurar un Security Filter Chain en Spring?
Crear un Security Filter Chain en Spring nos permite manejar la seguridad de nuestras aplicaciones, definiendo cómo se autenticará y autorizará cada petición HTTP. Primero, debemos crear un paquete específico para la configuración de seguridad y una clase donde implementaremos los filtros necesarios.
¿Cómo creamos la configuración inicial de seguridad?
- Crear un paquete nuevo: Dentro de la capa web del proyecto, crea un paquete llamado
Config. - Anotar la clase con @Configuration: Esto permite que Spring gestione e inyecte automáticamente este bean dentro de la aplicación.
- Definir el método Security Filter Chain: Crea un método público que retorne un
SecurityFilterChainy reciba unHttpSecuritycomo parámetro.
@Configuration
public class SecurityConfig {
@Bean
public SecurityFilterChain filterChain(HttpSecurity http) throws Exception {
return http.build();
}
}
¿Cómo permitimos o restringimos peticiones HTTP?
Definir las reglas para autorizar peticiones es crucial para proteger una aplicación. Inicialmente, podemos permitir todas las peticiones, y posteriormente, aplicar seguridad ajustando estas configuraciones.
-
Permitir todas las peticiones: Esto esencialmente elimina las capas de autenticación.
http .authorizeRequests() .anyRequest().permitAll(); -
Requerir autenticación básica para todas las peticiones: Prioriza la seguridad solicitando autenticación en cada acceso.
http .authorizeRequests() .anyRequest().authenticated() .and().httpBasic();
¿Cómo validamos la configuración con Postman?
Con la configuración inicial realizada, verifica el comportamiento utilizando herramientas como Postman:
- Probar sin autorización: Elimina el encabezado de autorización y envía la petición. Si logras recibir una respuesta, significa que la seguridad está desactivada.
- Activar Basic Authentication: Configura la autenticación básica con el usuario y contraseña generados por Spring. Observa que las peticiones ahora requieren credenciales válidas.
En el código, aseguramos que las peticiones usen autenticación básica y verificamos el funcionamiento del filtro correspondiente:
http
.authorizeRequests()
.anyRequest().authenticated()
.and().httpBasic();
Al lanzar la aplicación, el filtro BasicAuthenticationFilter gestionará las autenticaciones. Si el header de la autorización no está presente o es incorrecto, la petición será denegada.
¿Qué debemos tener en cuenta al implementar seguridad en Spring?
- Gestión de usuarios y contraseñas: Usar
Usercomo el usuario por defecto puede ser seguro para desarrollo, pero en producción es crucial personalizar estas credenciales. - Desactivar filtros innecesarios: Spring incluye múltiples filtros por defecto. Solo mantén los relevantes para tu caso y desactiva el resto explícitamente.
- Revisar la documentación de Spring Security: Spring es una herramienta poderosa, y conocer sus capacidades nos ayudará a adaptar más funcionalidades.
Este enfoque fortalece tu aplicación contra accesos no autorizados e intenta hacerlo accesible a usuarios válidos. Continúa explorando y ampliando tus habilidades en seguridad con Spring para dominar estos conceptos.