From 8695c2a66b102fda009c942b23e4d5ac54a90263 Mon Sep 17 00:00:00 2001
From: Junjie <540245094@qq.com>
Date: 星期四, 04 七月 2024 18:23:14 +0800
Subject: [PATCH] #
---
zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java | 21 ++++++++++++++++++++-
1 files changed, 20 insertions(+), 1 deletions(-)
diff --git a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java
index df3331f..555abff 100644
--- a/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java
+++ b/zy-asrs-wms/src/main/java/com/zy/asrs/wms/common/security/JwtAuthenticationFilter.java
@@ -1,12 +1,16 @@
package com.zy.asrs.wms.common.security;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.zy.asrs.common.domain.enums.LoginSystemType;
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.wms.common.config.ConfigProperties;
import com.zy.asrs.wms.common.constant.Constants;
import com.zy.asrs.wms.system.entity.Menu;
+import com.zy.asrs.wms.system.entity.Role;
import com.zy.asrs.wms.system.entity.User;
import com.zy.asrs.wms.system.entity.UserLogin;
import com.zy.asrs.wms.system.service.UserLoginService;
+import com.zy.asrs.wms.system.service.UserRoleService;
import com.zy.asrs.wms.system.service.UserService;
import com.zy.asrs.wms.utils.HttpUtils;
import com.zy.asrs.wms.utils.JwtUtil;
@@ -50,6 +54,8 @@
private UserService userService;
@Resource
private UserLoginService userLoginService;
+ @Resource
+ private UserRoleService userRoleService;
@Override
protected void doFilterInternal(HttpServletRequest request, HttpServletResponse response, FilterChain chain) throws ServletException, IOException {
@@ -82,10 +88,23 @@
if (user == null) {
throw new UsernameNotFoundException("Username not found");
}
+ boolean root = false;
+ List<Role> roles = userRoleService.listByUserId(user.getId());
+ for (Role role : roles) {
+ if (role.getId() == 1) {
+ root = true;
+ break;
+ }
+ }
+ UserLogin userLogin = null;
+ if (root) {
+ userLogin = userLoginService.superFindByUserId(user.getId(), String.valueOf(LoginSystemType.WMS));
+ }
+
List<Menu> authorities = user.getAuthorities().stream()
.filter(m -> !Cools.isEmpty(m.getAuthority())).collect(Collectors.toList());
UsernamePasswordAuthenticationToken authentication = new UsernamePasswordAuthenticationToken(
- user, null, authorities);
+ userLogin == null ? user : userLogin, null, authorities);
SecurityContextHolder.getContext().setAuthentication(authentication);
// token灏嗚杩囨湡绛惧彂鏂皌oken, 闃叉绐佺劧閫�鍑虹櫥褰�
long expiration = (claims.getExpiration().getTime() - new Date().getTime()) / 1000 / 60;
--
Gitblit v1.9.1