12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- package com.bizmatics.service.config.security;
- import com.bizmatics.common.core.exception.BusinessException;
- import com.bizmatics.model.system.SysUser;
- import com.bizmatics.service.enums.UserStatus;
- import com.bizmatics.service.system.ISysUserService;
- import com.bizmatics.service.system.impl.SysPermissionService;
- 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.Service;
- import java.util.Objects;
- /**
- * 用户验证处理
- *
- * @author yq
- */
- @Service
- public class UserDetailsServiceImpl implements UserDetailsService
- {
- private static final Logger log = LoggerFactory.getLogger(UserDetailsServiceImpl.class);
- @Autowired
- private ISysUserService userService;
- @Autowired
- private SysPermissionService permissionService;
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException
- {
- SysUser user = userService.selectUserByUserName(username);
- if (Objects.isNull(user))
- {
- log.info("登录用户:{} 不存在.", username);
- throw new UsernameNotFoundException("登录用户:" + username + " 不存在");
- }
- else if (UserStatus.DELETED.getCode().equals(user.getDelFlag()))
- {
- log.info("登录用户:{} 已被删除.", username);
- throw new BusinessException("对不起,您的账号:" + username + " 已被删除");
- }
- else if (UserStatus.DISABLE.getCode().equals(user.getStatus()))
- {
- log.info("登录用户:{} 已被停用.", username);
- throw new BusinessException("对不起,您的账号:" + username + " 已停用");
- }
- return createLoginUser(user);
- }
- public UserDetails createLoginUser(SysUser user)
- {
- return new LoginUser(user, permissionService.getMenuPermission(user));
- }
- }
|