fix(system): 修复重构导致用户认证失败问题
This commit is contained in:
+39
-37
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -29,47 +28,50 @@ import org.springframework.security.core.userdetails.UserDetails;
|
|||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public class SystemUserJwtVo implements UserDetails {
|
public class SystemUserJwtVo implements UserDetails {
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户") private final SystemUserTb user;
|
@ApiModelProperty(value = "用户")
|
||||||
@ApiModelProperty(value = "数据权限") private final List<Long> dataScopes;
|
private final SystemUserVo user;
|
||||||
@ApiModelProperty(value = "角色") private final List<SystemRoleCodeVo> authorities;
|
@ApiModelProperty(value = "数据权限")
|
||||||
|
private final List<Long> dataScopes;
|
||||||
|
@ApiModelProperty(value = "角色")
|
||||||
|
private final List<SystemRoleCodeVo> authorities;
|
||||||
|
|
||||||
public Set<String> getRoles() {
|
public Set<String> getRoles() {
|
||||||
return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet());
|
return authorities.stream().map(SystemRoleCodeVo::getAuthority).collect(Collectors.toSet());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public String getPassword() {
|
public String getPassword() {
|
||||||
return user.getPassword();
|
return user.getPassword();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public String getUsername() {
|
public String getUsername() {
|
||||||
return user.getUsername();
|
return user.getUsername();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public boolean isAccountNonExpired() {
|
public boolean isAccountNonExpired() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public boolean isAccountNonLocked() {
|
public boolean isAccountNonLocked() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public boolean isCredentialsNonExpired() {
|
public boolean isCredentialsNonExpired() {
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JSONField(serialize = false)
|
@JSONField(serialize = false)
|
||||||
public boolean isEnabled() {
|
public boolean isEnabled() {
|
||||||
return user.getEnabled();
|
return user.getEnabled();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+29
-25
@@ -13,13 +13,12 @@
|
|||||||
* See the License for the specific language governing permissions and
|
* See the License for the specific language governing permissions and
|
||||||
* limitations under the License.
|
* limitations under the License.
|
||||||
*/
|
*/
|
||||||
|
|
||||||
package cn.odboy.system.framework.permission.core.handler;
|
package cn.odboy.system.framework.permission.core.handler;
|
||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemRoleCodeVo;
|
import cn.odboy.system.dal.model.SystemRoleCodeVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
||||||
import cn.odboy.system.service.SystemDataService;
|
import cn.odboy.system.service.SystemDataService;
|
||||||
import cn.odboy.system.service.SystemRoleService;
|
import cn.odboy.system.service.SystemRoleService;
|
||||||
@@ -36,30 +35,35 @@ import org.springframework.stereotype.Service;
|
|||||||
@Slf4j
|
@Slf4j
|
||||||
@Service("userDetailsService")
|
@Service("userDetailsService")
|
||||||
public class UserDetailsHandler implements UserDetailsService {
|
public class UserDetailsHandler implements UserDetailsService {
|
||||||
@Autowired private SystemRoleService systemRoleService;
|
|
||||||
@Autowired private SystemUserService systemUserService;
|
|
||||||
@Autowired private SystemDataService systemDataService;
|
|
||||||
@Autowired private SystemUserInfoDAO systemUserInfoDAO;
|
|
||||||
|
|
||||||
@Override
|
@Autowired
|
||||||
public SystemUserJwtVo loadUserByUsername(String username) {
|
private SystemRoleService systemRoleService;
|
||||||
SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username);
|
@Autowired
|
||||||
if (userJwtVo == null) {
|
private SystemUserService systemUserService;
|
||||||
SystemUserTb user = systemUserService.getUserByUsername(username);
|
@Autowired
|
||||||
if (user == null) {
|
private SystemDataService systemDataService;
|
||||||
throw new BadRequestException("用户不存在");
|
@Autowired
|
||||||
} else {
|
private SystemUserInfoDAO systemUserInfoDAO;
|
||||||
if (!user.getEnabled()) {
|
|
||||||
throw new BadRequestException("账号未激活");
|
@Override
|
||||||
}
|
public SystemUserJwtVo loadUserByUsername(String username) {
|
||||||
// 获取用户的权限
|
SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username);
|
||||||
List<SystemRoleCodeVo> authorities = systemRoleService.buildUserRolePermissions(user);
|
if (userJwtVo == null) {
|
||||||
// 初始化JwtUserDto
|
SystemUserVo user = systemUserService.getUserVoByUsername(username);
|
||||||
userJwtVo = new SystemUserJwtVo(user, systemDataService.queryDeptIdByArgs(user), authorities);
|
if (user == null) {
|
||||||
// 添加缓存数据
|
throw new BadRequestException("用户不存在");
|
||||||
systemUserInfoDAO.saveUserLoginInfoByUserName(username, userJwtVo);
|
} else {
|
||||||
}
|
if (!user.getEnabled()) {
|
||||||
|
throw new BadRequestException("账号未激活");
|
||||||
}
|
}
|
||||||
return userJwtVo;
|
// 获取用户的权限
|
||||||
|
List<SystemRoleCodeVo> authorities = systemRoleService.buildUserRolePermissions(user);
|
||||||
|
// 初始化JwtUserDto
|
||||||
|
userJwtVo = new SystemUserJwtVo(user, systemDataService.queryDeptIdByArgs(user), authorities);
|
||||||
|
// 添加缓存数据
|
||||||
|
systemUserInfoDAO.saveUserLoginInfoByUserName(username, userJwtVo);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return userJwtVo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
+31
-15
@@ -66,17 +66,28 @@ import org.springframework.web.multipart.MultipartFile;
|
|||||||
@Service
|
@Service
|
||||||
public class SystemUserService {
|
public class SystemUserService {
|
||||||
|
|
||||||
@Autowired private SystemUserMapper systemUserMapper;
|
@Autowired
|
||||||
@Autowired private SystemUserJobService systemUserJobService;
|
private SystemUserMapper systemUserMapper;
|
||||||
@Autowired private SystemUserRoleService systemUserRoleService;
|
@Autowired
|
||||||
@Autowired private SystemUserInfoDAO systemUserInfoDAO;
|
private SystemUserJobService systemUserJobService;
|
||||||
@Autowired private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
|
@Autowired
|
||||||
@Autowired private KitFileLocalUploadHelper fileUploadPathHelper;
|
private SystemUserRoleService systemUserRoleService;
|
||||||
@Autowired private SystemUserJobMapper systemUserJobMapper;
|
@Autowired
|
||||||
@Autowired private SystemUserRoleMapper systemUserRoleMapper;
|
private SystemUserInfoDAO systemUserInfoDAO;
|
||||||
@Autowired private SystemJobMapper systemJobMapper;
|
@Autowired
|
||||||
@Autowired private SystemRoleMapper systemRoleMapper;
|
private SystemUserOnlineInfoDAO systemUserOnlineInfoDAO;
|
||||||
@Autowired private SystemDeptMapper systemDeptMapper;
|
@Autowired
|
||||||
|
private KitFileLocalUploadHelper fileUploadPathHelper;
|
||||||
|
@Autowired
|
||||||
|
private SystemUserJobMapper systemUserJobMapper;
|
||||||
|
@Autowired
|
||||||
|
private SystemUserRoleMapper systemUserRoleMapper;
|
||||||
|
@Autowired
|
||||||
|
private SystemJobMapper systemJobMapper;
|
||||||
|
@Autowired
|
||||||
|
private SystemRoleMapper systemRoleMapper;
|
||||||
|
@Autowired
|
||||||
|
private SystemDeptMapper systemDeptMapper;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 新增用户
|
* 新增用户
|
||||||
@@ -401,12 +412,13 @@ public class SystemUserService {
|
|||||||
wrapper.in(SystemUserTb::getDeptId, args.getDeptIds());
|
wrapper.in(SystemUserTb::getDeptId, args.getDeptIds());
|
||||||
}
|
}
|
||||||
if (StrUtil.isNotBlank(args.getBlurry())) {
|
if (StrUtil.isNotBlank(args.getBlurry())) {
|
||||||
wrapper.and(w -> w.like(SystemUserTb::getUsername, args.getBlurry()).or()
|
wrapper.and(w -> w.like(SystemUserTb::getUsername, args.getBlurry())
|
||||||
.like(SystemUserTb::getNickName, args.getBlurry()).or()
|
.or().like(SystemUserTb::getNickName, args.getBlurry())
|
||||||
.like(SystemUserTb::getEmail, args.getBlurry()));
|
.or().like(SystemUserTb::getEmail, args.getBlurry()));
|
||||||
}
|
}
|
||||||
if (CollUtil.isNotEmpty(args.getCreateTime()) && args.getCreateTime().size() >= 2) {
|
if (CollUtil.isNotEmpty(args.getCreateTime()) && args.getCreateTime().size() >= 2) {
|
||||||
wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0), args.getCreateTime().get(1));
|
wrapper.between(SystemUserTb::getCreateTime, args.getCreateTime().get(0),
|
||||||
|
args.getCreateTime().get(1));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
wrapper.orderByDesc(SystemUserTb::getCreateTime);
|
wrapper.orderByDesc(SystemUserTb::getCreateTime);
|
||||||
@@ -461,6 +473,10 @@ public class SystemUserService {
|
|||||||
return systemUserMapper.selectOne(wrapper);
|
return systemUserMapper.selectOne(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SystemUserVo getUserVoByUsername(String username) {
|
||||||
|
return this.convertToUserVo(this.getUserByUsername(username));
|
||||||
|
}
|
||||||
|
|
||||||
public long countUserByDeptIds(Set<Long> deptIds) {
|
public long countUserByDeptIds(Set<Long> deptIds) {
|
||||||
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.in(SystemUserTb::getDeptId, deptIds);
|
wrapper.in(SystemUserTb::getDeptId, deptIds);
|
||||||
|
|||||||
+1
-2
@@ -15,7 +15,6 @@
|
|||||||
*/
|
*/
|
||||||
package cn.odboy.system.dal.model;
|
package cn.odboy.system.dal.model;
|
||||||
|
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
|
||||||
import com.alibaba.fastjson2.annotation.JSONField;
|
import com.alibaba.fastjson2.annotation.JSONField;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -30,7 +29,7 @@ import org.springframework.security.core.userdetails.UserDetails;
|
|||||||
public class SystemUserJwtVo implements UserDetails {
|
public class SystemUserJwtVo implements UserDetails {
|
||||||
|
|
||||||
@ApiModelProperty(value = "用户")
|
@ApiModelProperty(value = "用户")
|
||||||
private final SystemUserTb user;
|
private final SystemUserVo user;
|
||||||
@ApiModelProperty(value = "数据权限")
|
@ApiModelProperty(value = "数据权限")
|
||||||
private final List<Long> dataScopes;
|
private final List<Long> dataScopes;
|
||||||
@ApiModelProperty(value = "角色")
|
@ApiModelProperty(value = "角色")
|
||||||
|
|||||||
+2
-2
@@ -16,9 +16,9 @@
|
|||||||
package cn.odboy.system.framework.permission.core.handler;
|
package cn.odboy.system.framework.permission.core.handler;
|
||||||
|
|
||||||
import cn.odboy.framework.exception.BadRequestException;
|
import cn.odboy.framework.exception.BadRequestException;
|
||||||
import cn.odboy.system.dal.dataobject.SystemUserTb;
|
|
||||||
import cn.odboy.system.dal.model.SystemRoleCodeVo;
|
import cn.odboy.system.dal.model.SystemRoleCodeVo;
|
||||||
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
import cn.odboy.system.dal.model.SystemUserJwtVo;
|
||||||
|
import cn.odboy.system.dal.model.SystemUserVo;
|
||||||
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
import cn.odboy.system.dal.redis.SystemUserInfoDAO;
|
||||||
import cn.odboy.system.service.SystemDataService;
|
import cn.odboy.system.service.SystemDataService;
|
||||||
import cn.odboy.system.service.SystemRoleService;
|
import cn.odboy.system.service.SystemRoleService;
|
||||||
@@ -49,7 +49,7 @@ public class UserDetailsHandler implements UserDetailsService {
|
|||||||
public SystemUserJwtVo loadUserByUsername(String username) {
|
public SystemUserJwtVo loadUserByUsername(String username) {
|
||||||
SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username);
|
SystemUserJwtVo userJwtVo = systemUserInfoDAO.getUserLoginInfoByUserName(username);
|
||||||
if (userJwtVo == null) {
|
if (userJwtVo == null) {
|
||||||
SystemUserTb user = systemUserService.getUserByUsername(username);
|
SystemUserVo user = systemUserService.getUserVoByUsername(username);
|
||||||
if (user == null) {
|
if (user == null) {
|
||||||
throw new BadRequestException("用户不存在");
|
throw new BadRequestException("用户不存在");
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
+4
@@ -473,6 +473,10 @@ public class SystemUserService {
|
|||||||
return systemUserMapper.selectOne(wrapper);
|
return systemUserMapper.selectOne(wrapper);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SystemUserVo getUserVoByUsername(String username) {
|
||||||
|
return this.convertToUserVo(this.getUserByUsername(username));
|
||||||
|
}
|
||||||
|
|
||||||
public long countUserByDeptIds(Set<Long> deptIds) {
|
public long countUserByDeptIds(Set<Long> deptIds) {
|
||||||
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
|
LambdaQueryWrapper<SystemUserTb> wrapper = new LambdaQueryWrapper<>();
|
||||||
wrapper.in(SystemUserTb::getDeptId, deptIds);
|
wrapper.in(SystemUserTb::getDeptId, deptIds);
|
||||||
|
|||||||
Reference in New Issue
Block a user