DefaultUserDetailsServiceImpl.java 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051
  1. package com.genersoft.iot.vmp.conf.security;
  2. import com.alibaba.excel.util.StringUtils;
  3. import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
  4. import com.genersoft.iot.vmp.service.IUserService;
  5. import com.genersoft.iot.vmp.storager.dao.dto.User;
  6. import org.slf4j.Logger;
  7. import org.slf4j.LoggerFactory;
  8. import org.springframework.beans.factory.annotation.Autowired;
  9. import org.springframework.security.core.userdetails.UserDetails;
  10. import org.springframework.security.core.userdetails.UserDetailsService;
  11. import org.springframework.security.core.userdetails.UsernameNotFoundException;
  12. import org.springframework.stereotype.Component;
  13. import java.time.LocalDateTime;
  14. /**
  15. * 用户登录认证逻辑
  16. */
  17. @Component
  18. public class DefaultUserDetailsServiceImpl implements UserDetailsService {
  19. private final static Logger logger = LoggerFactory.getLogger(DefaultUserDetailsServiceImpl.class);
  20. @Autowired
  21. private IUserService userService;
  22. @Override
  23. public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
  24. if (StringUtils.isBlank(username)) {
  25. logger.info("登录用户:{} 不存在", username);
  26. throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
  27. }
  28. // 查出密码
  29. User user = userService.getUserByUsername(username);
  30. if (user == null) {
  31. logger.info("登录用户:{} 不存在", username);
  32. throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
  33. }
  34. String password = SecurityUtils.encryptPassword(user.getPassword());
  35. user.setPassword(password);
  36. return new LoginUser(user, LocalDateTime.now());
  37. }
  38. }