From 3c22474f0a1e7bfc2e32f0cf5f758f81dca89828 Mon Sep 17 00:00:00 2001
From: fengjin <1435304038@qq.com>
Date: 星期二, 19 九月 2023 16:23:05 +0800
Subject: [PATCH] 修改Bug

---
 springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java |   79 +++++++++++++++++++++------------------
 1 files changed, 42 insertions(+), 37 deletions(-)

diff --git a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
index 282af0a..df4e062 100644
--- a/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
+++ b/springcloud_k8s_panzhihuazhihuishequ/zuul/src/main/java/com/panzhihua/zuul/filters/JWTAuthenticationTokenFilter.java
@@ -10,7 +10,7 @@
 import javax.servlet.http.HttpServletResponse;
 
 import com.panzhihua.common.model.vos.user.SysAppConfigVO;
-import com.panzhihua.common.utlis.StringUtils;
+import com.panzhihua.common.utlis.*;
 import org.springframework.context.ApplicationContext;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.data.redis.core.ValueOperations;
@@ -27,9 +27,6 @@
 import com.panzhihua.common.model.vos.LoginUserInfoVO;
 import com.panzhihua.common.model.vos.R;
 import com.panzhihua.common.service.user.UserService;
-import com.panzhihua.common.utlis.AES;
-import com.panzhihua.common.utlis.JWTTokenUtil;
-import com.panzhihua.common.utlis.ResultUtil;
 
 import io.jsonwebtoken.Claims;
 
@@ -52,22 +49,17 @@
     /**
      * 用户是否登录校验
      *
-     * @param servletRequest
-     *            请求
-     * @param servletResponse
-     *            返回
-     * @param filterChain
-     *            过滤器链条
-     * @throws IOException
-     *             io
-     * @throws ServletException
-     *             servlet
+     * @param servletRequest  请求
+     * @param servletResponse 返回
+     * @param filterChain     过滤器链条
+     * @throws IOException      io
+     * @throws ServletException servlet
      */
     @Override
     public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain)
-        throws IOException, ServletException {
-        HttpServletRequest request = (HttpServletRequest)servletRequest;
-        HttpServletResponse response = (HttpServletResponse)servletResponse;
+            throws IOException, ServletException {
+        HttpServletRequest request = (HttpServletRequest) servletRequest;
+        HttpServletResponse response = (HttpServletResponse) servletResponse;
         ServletContext context = request.getServletContext();
         ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(context);
         stringRedisTemplate = ctx.getBean(StringRedisTemplate.class);
@@ -75,6 +67,7 @@
         userService = ctx.getBean(UserService.class);
         String requestURI = request.getRequestURI();
         boolean login = requestURI.contains("login");
+        boolean union = requestURI.contains("huacheng-union-applets");
         boolean doc = requestURI.contains("doc.html");
         boolean css = requestURI.contains(".css");
         boolean js = requestURI.contains(".js");
@@ -107,11 +100,23 @@
         // boolean infodynamic = !requestURI.contains("partybuilding/infodynamic");
 
         SafeboxRequestWrapper safeboxRequestWrapper = new SafeboxRequestWrapper(request);
-        safeboxRequestWrapper.addHeader("appid",request.getHeader("appid"));
+        safeboxRequestWrapper.addHeader("appid", request.getHeader("appid"));
         if (login || doc || css || js || ui || swagger || ico || docs || error || refreshToken || useragreement || wxPay
-        // ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
-            || wxCgi || isShop || listadvertisement || noToken||uuRepay||kaphtcha||uuPush||tfLogin||batteryActivityPayNotify
-                ||batteryPayNotify|| wsPush || basicScreen||pageEasyPhotoAdminLC) {
+                // ||wxCgi||isShop||listadvertisement||noToken||bigscreen) {
+                || wxCgi || isShop || listadvertisement || noToken || uuRepay || kaphtcha || uuPush || tfLogin || batteryActivityPayNotify
+                || batteryPayNotify || wsPush || basicScreen || pageEasyPhotoAdminLC || union) {
+            if (union && !login ) {
+                String token;
+                String header = request.getHeader(Constant.AUTHORIZATION);
+                String[] tokens = request.getHeader(Constant.AUTHORIZATION).split(" ");
+                if (tokens.length >= 2) {
+                    token = request.getHeader(Constant.AUTHORIZATION).split(" ")[1];
+                } else {
+                    token = request.getHeader(Constant.AUTHORIZATION);
+                }
+                safeboxRequestWrapper.addHeader(Constant.UNION_AUTHORIZATION, token);
+            }
+
             // 什么也不做
         } else {
             // 获取请求头中JWT的Token
@@ -140,7 +145,7 @@
                     return;
                 }
                 String userId = claims.getSubject();
-                int type = (Integer)claims.get("type");
+                int type = (Integer) claims.get("type");
                 if (ObjectUtils.isEmpty(userId)) {
                     ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
                     return;
@@ -197,7 +202,7 @@
                     }
                 }
                 UsernamePasswordAuthenticationToken authentication =
-                    new UsernamePasswordAuthenticationToken(userId, userId, authorities);// 主要使用权限 账户 密码 不重要
+                        new UsernamePasswordAuthenticationToken(userId, userId, authorities);// 主要使用权限 账户 密码 不重要
                 SecurityContextHolder.getContext().setAuthentication(authentication);
                 safeboxRequestWrapper.addHeader(TokenConstant.TOKEN_LOGOUT, tokenHeader);
                 // 登录用户的所有信息
@@ -335,23 +340,23 @@
                 noLoginUrl.add("/api/communitybackstage/comBatteryCommodityOrder/syncCloseOrder");
                 noLoginUrl.add("/api/applets/uu/getQRCode");
                 noLoginUrl.add("/api/huacheng-applets/uu/getQRCode");
-                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/query");
-                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/add");
-                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/page");
-                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/{id}");
-                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorSite/page");
-                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/{id}");
-                noLoginUrl.add("/api/huacheng-union-applets/unionReport/add");
-                noLoginUrl.add("/api/huacheng-union-applets/unionReport/query");
-                noLoginUrl.add("/api/huacheng-union-applets/unionUser/authentication");
-                response.setHeader("Access-Control-Allow-Origin", "*");
-                response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
-                response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/query");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/add");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/page");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorLaborDynamic/{id}");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionOutdoorSite/page");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionInspection/{id}");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionReport/add");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionReport/query");
+//                noLoginUrl.add("/api/huacheng-union-applets/unionUser/authentication");
+//                response.setHeader("Access-Control-Allow-Origin", "*");
+//                response.setHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE, OPTIONS");
+//                response.setHeader("Access-Control-Allow-Headers", "Content-Type, Authorization");
                 if (noLoginUrl.contains(requestURI)) {
                     List<SimpleGrantedAuthority> authorities = new ArrayList<>();
                     authorities.add(new SimpleGrantedAuthority(SecurityConstants.ROLE_APPLETS));
                     UsernamePasswordAuthenticationToken authentication =
-                        new UsernamePasswordAuthenticationToken(null, null, authorities);
+                            new UsernamePasswordAuthenticationToken(null, null, authorities);
                     SecurityContextHolder.getContext().setAuthentication(authentication);
                 } else {
                     ResultUtil.responseJson(response, R.fail(HttpStatus.UNAUTHORIZED, "token校验失败"));
@@ -359,7 +364,7 @@
                 }
             }
         }
-        response.addHeader("Access-Control-Allow-Origin","*");
+//        response.addHeader("Access-Control-Allow-Origin","*");
         filterChain.doFilter(safeboxRequestWrapper, response);
     }
 

--
Gitblit v1.7.1