25 lines
1 KiB
Java
25 lines
1 KiB
Java
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));
|
|
}
|
|
}
|