UserService.java

package com.sintia.ffl.admin.optique.services.services;

import com.sintia.ffl.admin.optique.dal.entities.User;
import com.sintia.ffl.admin.optique.dal.repositories.UserRepository;
import com.sintia.ffl.admin.optique.services.dto.CustomUser;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
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;

@Component("userDetailsService")
@Slf4j
public class UserService implements UserDetailsService {

	@Autowired
	private UserRepository userRepository;

	@Override
	public UserDetails loadUserByUsername(String userName) throws UsernameNotFoundException {
		log.debug("Start loadUserByUsername for user '{}'", userName);
		User user = userRepository.findByUserName(userName);
		if (null == user) {
			log.debug("User not found");
			throw new UsernameNotFoundException(userName);
		} else {
			log.debug("User found: {}", user);
			return new CustomUser(user);
		}
	}

}