package net.pechorina.kontempl.service; import net.pechorina.kontempl.data.OptiUserDetails; import net.pechorina.kontempl.data.User; import net.pechorina.kontempl.utils.StringUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.context.MessageSource; import org.springframework.core.env.Environment; 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 java.util.HashSet; import java.util.Locale; import java.util.Set; @Service("customUserDetailsService") public class CustomUserDetailsService implements UserDetailsService { static final Logger logger = LoggerFactory.getLogger(UserDetailsService.class); //protected MessageSourceAccessor messages = SpringSecurityMessageSource.getAccessor(); @Autowired private Environment env; @Autowired UserService userService; @Autowired //@Qualifier("securityMessageSource") MessageSource messages; @Override public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException { if (username != null) { username = StringUtils.superTrim(username); } User user = userService.getUserByEmail(username); if (user == null) { throw new UsernameNotFoundException(messages.getMessage("LocalAuthProvider.userNotFound", null, Locale.getDefault())); } Set<String> roles = new HashSet<>(); if (user.getRoles() != null) { roles = user.getRoles(); } return new OptiUserDetails(user, roles); } }