修复 - 循环依赖

This commit is contained in:
lyd
2022-09-23 11:21:30 +08:00
parent 4fe14aeddd
commit 9e596b6794
2 changed files with 13 additions and 16 deletions

View File

@@ -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);
} }
} }

View File

@@ -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);
} }
} }