| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051 |
- package com.genersoft.iot.vmp.conf.security;
- import com.alibaba.excel.util.StringUtils;
- import com.genersoft.iot.vmp.conf.security.dto.LoginUser;
- import com.genersoft.iot.vmp.service.IUserService;
- import com.genersoft.iot.vmp.storager.dao.dto.User;
- import org.slf4j.Logger;
- import org.slf4j.LoggerFactory;
- 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;
- import java.time.LocalDateTime;
- /**
- * 用户登录认证逻辑
- */
- @Component
- public class DefaultUserDetailsServiceImpl implements UserDetailsService {
- private final static Logger logger = LoggerFactory.getLogger(DefaultUserDetailsServiceImpl.class);
- @Autowired
- private IUserService userService;
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- if (StringUtils.isBlank(username)) {
- logger.info("登录用户:{} 不存在", username);
- throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
- }
- // 查出密码
- User user = userService.getUserByUsername(username);
- if (user == null) {
- logger.info("登录用户:{} 不存在", username);
- throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
- }
- String password = SecurityUtils.encryptPassword(user.getPassword());
- user.setPassword(password);
- return new LoginUser(user, LocalDateTime.now());
- }
- }
|