SpringBoot: Seguridad con Spring Security

SpringBoot
SpringBoot
Actualizado: 14/02/2025

¡Desbloquea el curso completo!

IA
Ejercicios
Certificado
Entrar

Spring Boot 3, en combinación con Spring Security, proporciona un sólido marco para implementar seguridad en aplicaciones Java. Este módulo cubre cómo configurar y utilizar Spring Security en una aplicación Spring Boot 3 para asegurar endpoints, gestionar autenticación y autorización, y mucho más.

Configuración inicial

Para empezar, es necesario agregar las dependencias de Spring Security en tu archivo build.gradle o pom.xml. Aquí tienes un ejemplo utilizando Gradle:

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-security'
}

Gestión de usuarios

Para gestionar usuarios, puedes definir un UserDetailsService personalizado. A continuación, un ejemplo de cómo hacerlo:

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.provisioning.InMemoryUserDetailsManager;

@Configuration
public class UserConfig {

    @Bean
    public UserDetailsService userDetailsService() {
        InMemoryUserDetailsManager manager = new InMemoryUserDetailsManager();
        manager.createUser(User.withUsername("user")
                .password(passwordEncoder().encode("password"))
                .roles("USER")
                .build());
        manager.createUser(User.withUsername("admin")
                .password(passwordEncoder().encode("admin"))
                .roles("ADMIN")
                .build());
        return manager;
    }

    @Bean
    public PasswordEncoder passwordEncoder() {
        return new BCryptPasswordEncoder();
    }
}

Protección de endpoints REST

Para asegurar endpoints REST, se puede utilizar la misma configuración de seguridad. Aquí un ejemplo de cómo proteger un controlador REST:

Guarda tu progreso

Inicia sesión para no perder tu progreso y accede a miles de tutoriales, ejercicios prácticos y nuestro asistente de IA.

Progreso guardado
Asistente IA
Ejercicios
Iniciar sesión gratis

Más de 25.000 desarrolladores ya confían en CertiDevs

import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/api")
public class ApiController {

    @GetMapping("/public")
    public String publicEndpoint() {
        return "This is a public endpoint";
    }

    @GetMapping("/private")
    public String privateEndpoint() {
        return "This is a private endpoint";
    }
}

En la configuración de seguridad, se asegura que solo los usuarios autenticados puedan acceder al endpoint privado.

Completa SpringBoot y certifícate

Únete a nuestra plataforma y accede a miles de tutoriales, ejercicios prácticos, proyectos reales y nuestro asistente de IA personalizado para acelerar tu aprendizaje.

Asistente IA

Resuelve dudas al instante

Ejercicios

Practica con proyectos reales

Certificados

Valida tus conocimientos

Más de 25.000 desarrolladores ya se han certificado con CertiDevs

⭐⭐⭐⭐⭐
4.9/5 valoración