1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556 |
- package com.ruoyi.system.service.impl;
- import com.ruoyi.common.core.domain.entity.SysUser;
- import com.ruoyi.common.core.domain.model.LoginUser;
- import com.ruoyi.common.enums.UserStatus;
- import com.ruoyi.common.exception.user.UserException;
- import com.ruoyi.common.utils.StringUtils;
- import com.ruoyi.system.service.ISysUserService;
- import com.ruoyi.system.service.SysPermissionService;
- import lombok.RequiredArgsConstructor;
- import lombok.extern.slf4j.Slf4j;
- 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;
- /**
- * 用户验证处理
- *
- * @author ruoyi
- */
- @Slf4j
- @RequiredArgsConstructor
- @Service
- public class UserDetailsServiceImpl implements UserDetailsService {
- private final ISysUserService userService;
- private final SysPermissionService permissionService;
- @Override
- public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
- SysUser user = userService.selectUserByUserName(username);
- if (StringUtils.isNull(user)) {
- log.info("登录用户:{} 不存在.", username);
- throw new UserException("user.not.exists", username);
- } else if (UserStatus.DELETED.getCode().equals(user.getDelFlag())) {
- log.info("登录用户:{} 已被删除.", username);
- throw new UserException("user.password.delete", username);
- } else if (UserStatus.DISABLE.getCode().equals(user.getStatus())) {
- log.info("登录用户:{} 已被停用.", username);
- throw new UserException("user.blocked", username);
- }
- return createLoginUser(user);
- }
- public UserDetails createLoginUser(SysUser user) {
- return new LoginUser()
- .setUserId(user.getUserId())
- .setDeptId(user.getDeptId())
- .setUsername(user.getUserName())
- .setPassword(user.getPassword())
- .setMenuPermissions(permissionService.getMenuPermission(user))
- .setRolePermissions(permissionService.getRolePermission(user));
- }
- }
|