From acebf48e2e139f6f298cfbba829cc3c29db3c891 Mon Sep 17 00:00:00 2001 From: Junjie <540245094@qq.com> Date: 星期三, 03 七月 2024 10:20:23 +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