fix: 优化用户登录租户逻辑
This commit is contained in:
parent
16c51d5c59
commit
e7d95c625f
@ -1,18 +1,23 @@
|
|||||||
package com.yfd.platform.system.service.impl;
|
package com.yfd.platform.system.service.impl;
|
||||||
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
|
import cn.hutool.core.util.StrUtil;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.yfd.platform.datasource.DataSource;
|
import com.yfd.platform.datasource.DataSource;
|
||||||
import com.yfd.platform.system.domain.LoginUser;
|
import com.yfd.platform.system.domain.LoginUser;
|
||||||
import com.yfd.platform.system.domain.SysUser;
|
import com.yfd.platform.system.domain.SysUser;
|
||||||
import com.yfd.platform.system.mapper.SysMenuMapper;
|
import com.yfd.platform.system.mapper.SysMenuMapper;
|
||||||
import com.yfd.platform.system.service.IUserService;
|
import com.yfd.platform.system.service.IUserService;
|
||||||
|
import jakarta.servlet.http.HttpServletRequest;
|
||||||
import org.springframework.security.core.userdetails.UserDetails;
|
import org.springframework.security.core.userdetails.UserDetails;
|
||||||
import org.springframework.security.core.userdetails.UserDetailsService;
|
import org.springframework.security.core.userdetails.UserDetailsService;
|
||||||
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
import org.springframework.security.core.userdetails.UsernameNotFoundException;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import jakarta.annotation.Resource;
|
import jakarta.annotation.Resource;
|
||||||
|
import org.springframework.web.context.request.RequestContextHolder;
|
||||||
|
import org.springframework.web.context.request.ServletRequestAttributes;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -35,9 +40,19 @@ public class UserDetailsServiceImpl implements UserDetailsService {
|
|||||||
@Override
|
@Override
|
||||||
@DataSource(name = "master")
|
@DataSource(name = "master")
|
||||||
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
public UserDetails loadUserByUsername(String username) throws UsernameNotFoundException {
|
||||||
|
// 获取当前请求
|
||||||
|
ServletRequestAttributes attributes = (ServletRequestAttributes) RequestContextHolder.getRequestAttributes();
|
||||||
//根据用户名称或手机号查询用户信息
|
//根据用户名称或手机号查询用户信息
|
||||||
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
QueryWrapper<SysUser> queryWrapper = new QueryWrapper<>();
|
||||||
queryWrapper.and(wrapper -> wrapper.eq("username", username).or().eq("phone", username));
|
queryWrapper.and(wrapper -> wrapper.eq("username", username).or().eq("phone", username));
|
||||||
|
if (attributes != null) {
|
||||||
|
HttpServletRequest request = attributes.getRequest();
|
||||||
|
String tenantId = request.getHeader("Tenant_Id");
|
||||||
|
if(StrUtil.isNotBlank(tenantId)){
|
||||||
|
queryWrapper.eq("TENANT_ID", tenantId);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
SysUser user = userService.getOne(queryWrapper);
|
SysUser user = userService.getOne(queryWrapper);
|
||||||
if (ObjectUtil.isEmpty(user)) {
|
if (ObjectUtil.isEmpty(user)) {
|
||||||
throw new RuntimeException("用户账号不存在!");
|
throw new RuntimeException("用户账号不存在!");
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user