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