package com.sapolar.auth; import com.sapolar.user.User; import com.sapolar.user.UserRepository; import lombok.RequiredArgsConstructor; import org.springframework.security.core.authority.SimpleGrantedAuthority; 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; import java.util.List; @Service @RequiredArgsConstructor public class AuthUserDetailsService implements UserDetailsService { private final UserRepository userRepository; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = userRepository.findByUsername(username) .orElseThrow(() -> new UsernameNotFoundException("Usuario no encontrado: " + username)); return new org.springframework.security.core.userdetails.User( user.getUsername(), user.getPasswordHash(), user.getActive(), true, true, true, List.of(new SimpleGrantedAuthority("ROLE_" + user.getRole().getName())) ); } }