修复 - 循环依赖
This commit is contained in:
@@ -2,9 +2,6 @@ package org.nl.modules.security.satoken.utils;
|
|||||||
|
|
||||||
import cn.dev33.satoken.stp.StpUtil;
|
import cn.dev33.satoken.stp.StpUtil;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.nl.modules.system.domain.User;
|
|
||||||
import org.nl.modules.system.service.RoleService;
|
|
||||||
import org.nl.modules.system.service.UserService;
|
|
||||||
import org.nl.modules.system.service.dto.UserDto;
|
import org.nl.modules.system.service.dto.UserDto;
|
||||||
import org.nl.utils.dto.CurrentUser;
|
import org.nl.utils.dto.CurrentUser;
|
||||||
import org.springframework.stereotype.Component;
|
import org.springframework.stereotype.Component;
|
||||||
@@ -20,23 +17,19 @@ import java.util.List;
|
|||||||
@RequiredArgsConstructor
|
@RequiredArgsConstructor
|
||||||
public class FlushSessionUtil {
|
public class FlushSessionUtil {
|
||||||
|
|
||||||
private final UserService userService;
|
|
||||||
private final RoleService roleService;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新session数据 - Session , TokenSession
|
* 更新session数据 - Session , TokenSession
|
||||||
* @param user
|
* @param userDto
|
||||||
|
* @param permissionList
|
||||||
*/
|
*/
|
||||||
public void flushSessionInfo(User user) {
|
public void flushSessionInfo(UserDto userDto, List<String> permissionList) {
|
||||||
UserDto userDto = userService.findByName(user.getUsername());
|
|
||||||
List<String> permissionList = roleService.getPermissionList(userDto.getId().toString());
|
|
||||||
StpUtil.getSession().set("UserDto", userDto);
|
StpUtil.getSession().set("UserDto", userDto);
|
||||||
// 获取权限列表 - 登录查找权限
|
// 获取权限列表 - 登录查找权限
|
||||||
CurrentUser user2 = new CurrentUser();
|
CurrentUser user = new CurrentUser();
|
||||||
user2.setId(userDto.getId());
|
user.setId(userDto.getId());
|
||||||
user2.setUsername(userDto.getUsername());
|
user.setUsername(userDto.getUsername());
|
||||||
user2.setUser(userDto);
|
user.setUser(userDto);
|
||||||
user2.setPermissions(permissionList);
|
user.setPermissions(permissionList);
|
||||||
StpUtil.getTokenSession().set("userInfo", user);
|
StpUtil.getTokenSession().set("userInfo", user);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import org.nl.modules.security.satoken.utils.FlushSessionUtil;
|
|||||||
import org.nl.modules.security.service.OnlineUserService;
|
import org.nl.modules.security.service.OnlineUserService;
|
||||||
import org.nl.modules.system.domain.User;
|
import org.nl.modules.system.domain.User;
|
||||||
import org.nl.modules.system.repository.UserRepository;
|
import org.nl.modules.system.repository.UserRepository;
|
||||||
|
import org.nl.modules.system.service.RoleService;
|
||||||
import org.nl.modules.system.service.UserService;
|
import org.nl.modules.system.service.UserService;
|
||||||
import org.nl.modules.system.service.dto.JobSmallDto;
|
import org.nl.modules.system.service.dto.JobSmallDto;
|
||||||
import org.nl.modules.system.service.dto.RoleSmallDto;
|
import org.nl.modules.system.service.dto.RoleSmallDto;
|
||||||
@@ -61,6 +62,7 @@ public class UserServiceImpl implements UserService {
|
|||||||
private final RedisUtils redisUtils;
|
private final RedisUtils redisUtils;
|
||||||
private final OnlineUserService onlineUserService;
|
private final OnlineUserService onlineUserService;
|
||||||
private final FlushSessionUtil flushSessionUtil;
|
private final FlushSessionUtil flushSessionUtil;
|
||||||
|
private final RoleService roleService;
|
||||||
|
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@@ -248,6 +250,8 @@ public class UserServiceImpl implements UserService {
|
|||||||
* @param user /
|
* @param user /
|
||||||
*/
|
*/
|
||||||
private void flushSession(User user) {
|
private void flushSession(User user) {
|
||||||
flushSessionUtil.flushSessionInfo(user);
|
UserDto userDto = this.findByName(user.getUsername());
|
||||||
|
List<String> permissionList = roleService.getPermissionList(userDto.getId().toString());
|
||||||
|
flushSessionUtil.flushSessionInfo(userDto, permissionList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user