package ch.rasc.sec.security; 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.Component; import org.springframework.transaction.annotation.Transactional; import ch.rasc.sec.entity.User; import ch.rasc.sec.repository.UserRepository; @Component public class JpaUserDetailsService implements UserDetailsService { private final UserRepository userRepository; public JpaUserDetailsService(UserRepository userRepository) { this.userRepository = userRepository; } @Override @Transactional(readOnly = true) public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { User user = this.userRepository.findByUserName(username); if (user != null) { return new JpaUserDetails(user); } throw new UsernameNotFoundException(username); } }