package se.bilhalsning.security; import java.util.List; import lombok.RequiredArgsConstructor; 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 se.bilhalsning.repository.UserRepository; @Service @RequiredArgsConstructor public class UserDetailsServiceImpl implements UserDetailsService { private final UserRepository userRepository; @Override public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException { String normalizedEmail = email.toLowerCase().trim(); return userRepository.findByEmail(normalizedEmail) .map(user -> new User(user.getEmail(), user.getPasswordHash(), List.of())) .orElseThrow(() -> new UsernameNotFoundException("User not found: " + normalizedEmail)); } }