PortalTripUserDetailsService.java
package cl.prgm.portaltrip.infrastructure.security;
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;
import cl.prgm.portaltrip.infrastructure.persistence.UserEntity;
import cl.prgm.portaltrip.infrastructure.persistence.repository.UserJpaRepository;
@Service
public class PortalTripUserDetailsService implements UserDetailsService {
private final UserJpaRepository userJpaRepository;
public PortalTripUserDetailsService(UserJpaRepository userJpaRepository) {
this.userJpaRepository = userJpaRepository;
}
@Override
public UserDetails loadUserByUsername(String email) {
UserEntity user = userJpaRepository.findByEmail(email)
.orElseThrow(() -> new UsernameNotFoundException("User not found"));
return User.withUsername(user.getEmail())
.password(user.getPasswordHash())
.authorities(user.getRole())
.build();
}
}