Introducción
Seguridad en aplicaciones web
¿Qué es Spring Security?
Configurar Spring Security
Usar la autenticación por defecto
Configuración de seguridad
Crear configuración inicial de seguridad
¿Cómo funciona el BasicAuthenticationFilter?
Deshabilitar protección CSRF
Crear configuración de CORS
Aplicar requestMatchers
Crear autenticación en memoria
Aplicar requestMatchers con roles
Autenticación con BD
Crear usuarios en la base de datos
Implementar la interface UserDetailsService
Asignar roles a usuario
Aplicar authorities a los usuarios
Controlar métodos con Method Security
Seguridad con JWT
Añadir JWT al proyecto
Crear JWT cuando un usuario inicie sesión
Crear servicio para validar un JWT
Crear filtro para verificar el JWT
Aplicar filtro en la configuración
Próximos pasos
Auditoria de usuarios en la base de datos
¿Quieres un Curso de Microservicios con Java Spring?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
Alejandro RamÃrez
Aportes 7
Preguntas 4
UserSecurityService
package com.platzi.pizza.service;
import com.platzi.pizza.persistence.entity.UserEntity;
import com.platzi.pizza.persistence.repository.UserRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.security.core.userdetails.User;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UsernameNotFoundException;
import org.springframework.stereotype.Service;
@Service
public class UserSecurityService implements UserDetailsService {
private final UserRepository userRepository;
@Autowired
public UserSecurityService(UserRepository userRepository) {
this.userRepository = userRepository;
}
@Override
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
UserEntity userEntity = this.userRepository.findById(username)
.orElseThrow(() -> new UsernameNotFoundException("User " + username + " not found."));
return User.builder()
.username(userEntity.getUsername())
.password(userEntity.getPassword())
.roles("ADMIN")
.accountLocked(userEntity.isLocked())
.disabled(userEntity.isDisabled())
.build();
}
}
✅
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?