// Auto-generated by create-backlist
package <%= group %>.<%= projectName %>.security;

import <%= group %>.<%= projectName %>.model.User;
import <%= group %>.<%= projectName %>.repository.UserRepository;

import org.springframework.security.core.userdetails.UserDetailsService;
import org.springframework.security.core.userdetails.UserDetails;
import org.springframework.security.core.userdetails.UsernameNotFoundException;

import org.springframework.stereotype.Service;

@Service
public class UserDetailsServiceImpl implements UserDetailsService {

  private final UserRepository repo;

  public UserDetailsServiceImpl(UserRepository repo) {
    this.repo = repo;
  }

  @Override
  public UserDetails loadUserByUsername(String email) throws UsernameNotFoundException {
    User u = repo.findByEmail(email)
      .orElseThrow(() -> new UsernameNotFoundException("User not found"));

    return org.springframework.security.core.userdetails.User
      .withUsername(u.getEmail())
      .password(u.getPassword())
      .authorities("ROLE_USER")
      .build();
  }
}