| | |
| | | package com.ruoyi.framework.security.service;
|
| | |
|
| | | import com.ruoyi.project.system.mapper.SysDeptMapper;
|
| | | import org.slf4j.Logger;
|
| | | import org.slf4j.LoggerFactory;
|
| | | import org.springframework.beans.factory.annotation.Autowired;
|
| | | import org.springframework.security.core.Authentication;
|
| | | import org.springframework.security.core.context.SecurityContextHolder;
|
| | | import org.springframework.security.core.userdetails.UserDetails;
|
| | | import org.springframework.security.core.userdetails.UserDetailsService;
|
| | | import org.springframework.stereotype.Service;
|
| | |
| | | import com.ruoyi.framework.security.LoginUser;
|
| | | import com.ruoyi.project.system.domain.SysUser;
|
| | | import com.ruoyi.project.system.service.ISysUserService;
|
| | |
|
| | | import java.util.Map;
|
| | |
|
| | | /**
|
| | | * 用户验证处理
|
| | |
| | | @Autowired
|
| | | private SysPermissionService permissionService;
|
| | |
|
| | | @Autowired
|
| | | private SysDeptMapper deptMapper;
|
| | |
|
| | | @Override
|
| | | public UserDetails loadUserByUsername(String username)
|
| | | {
|
| | |
| | | log.info("登录用户:{} 已被停用.", username);
|
| | | throw new ServiceException(MessageUtils.message("user.blocked"));
|
| | | }
|
| | | Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
|
| | |
|
| | | // 获取 details
|
| | | Object details = authentication.getDetails();
|
| | | Long factoryId = null;
|
| | | if (details instanceof Map) {
|
| | | factoryId = (Long) ((Map<?, ?>) details).get("factoryId");
|
| | | if(null != factoryId){
|
| | | // 查询租户
|
| | | Long teantId = deptMapper.maxLevelDeptId(factoryId);
|
| | | user.setCurrentDeptId(factoryId);
|
| | | user.setTenantId(teantId.intValue());
|
| | | }
|
| | | }
|
| | | // 获取用户当前登录部门,并查询租户id
|
| | | passwordService.validate(user);
|
| | |
|
| | | return createLoginUser(user);
|
| | |
| | |
|
| | | public UserDetails createLoginUser(SysUser user)
|
| | | {
|
| | | return new LoginUser(user.getUserId(), user.getDeptIds(), user, user.getTenantId(), permissionService.getMenuPermission(user));
|
| | | return new LoginUser(user.getUserId(), user.getDeptIds(), user, user.getTenantId(),user.getCurrentDeptId(), permissionService.getMenuPermission(user));
|
| | | }
|
| | | }
|