zhoux 1 год назад
Родитель
Сommit
c2b406f28d
1 измененных файлов с 65 добавлено и 65 удалено
  1. 65 65
      src/main/java/com/dk/gateway/oauth/filter/Oauth2Filter.java

+ 65 - 65
src/main/java/com/dk/gateway/oauth/filter/Oauth2Filter.java

@@ -131,71 +131,71 @@ public class Oauth2Filter implements GlobalFilter, Ordered {
         String jwt = null;
         String userName = null;
 
-//        if (StringUtils.isNotBlank(decodedAccessToken)) {
-//            String[] tokens = decodedAccessToken.split(" ");
-//            // 验证Access Token
-//            logger.info("encode token ------->>>>{}", tokens[1]);
-//            try {
-//                // TOKEN反解密
-//                jwt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
-//                decodedAccessToken = tokens[0] + " " + jwt;
-//                logger.info("decode Token: {}", decodedAccessToken);
-//            } catch (Exception e) {
-//                logger.error("error message: {}", e.getMessage());
-//                logger.error("sorry,accessToken({}),decode faild!", tokens[1]);
-//            }
-//            // 判断
-//            if (StringUtils.isBlank(jwt)) {
-//                logger.error("JWT 变量为空.");
-//            } else {
-//                userName = JwtUtil.getUserName(jwt);
-//            }
-//            // TOKEN校验
-//            if (!JwtUtil.verify(jwt, userName)) {
-//                // 如果不存在/过期了,返回未验证错误,需重新验证
-//                logger.info("------token过期----{}" , decodedAccessToken);
-//                // 定义响应头部信息
-//                response.setStatusCode(HttpStatus.UNAUTHORIZED);
-//                response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
-//
-//                //定义响应体
-//                JSONObject result = new JSONObject(){{
-//                    put("code",1002);
-//                    put("message","用户令牌已过期,请重新登录");
-//                    put("data","");
-//                }};
-//
-//                //作JSON转换
-//                byte[] bytes = JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8);
-//
-//                //调用bufferFactory方法,生成DataBuffer对象
-//                DataBuffer buffer = response.bufferFactory().wrap(bytes);
-//
-//                //调用Mono中的just方法,返回要写给前端的JSON数据
-//                return response.writeWith(Mono.just(buffer));
-//            }
-//        } else {
-//            logger.info("------token为空----{}" , decodedAccessToken);
-//            // 定义响应头部信息
-//            response.setStatusCode(HttpStatus.UNAUTHORIZED);
-//            response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
-//
-//            //定义响应体
-//            JSONObject result = new JSONObject(){{
-//                put("code",1000);
-//                put("message","用户令牌为空,请重新登录");
-//                put("data","");
-//            }};
-//
-//            //作JSON转换
-//            byte[] bytes = JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8);
-//
-//            //调用bufferFactory方法,生成DataBuffer对象
-//            DataBuffer buffer = response.bufferFactory().wrap(bytes);
-//
-//            //调用Mono中的just方法,返回要写给前端的JSON数据
-//            return response.writeWith(Mono.just(buffer));
-//        }
+        if (StringUtils.isNotBlank(decodedAccessToken)) {
+            String[] tokens = decodedAccessToken.split(" ");
+            // 验证Access Token
+            logger.info("encode token ------->>>>{}", tokens[1]);
+            try {
+                // TOKEN反解密
+                jwt = AESSecurityUtil.decrypt(AESKey, tokens[1]);
+                decodedAccessToken = tokens[0] + " " + jwt;
+                logger.info("decode Token: {}", decodedAccessToken);
+            } catch (Exception e) {
+                logger.error("error message: {}", e.getMessage());
+                logger.error("sorry,accessToken({}),decode faild!", tokens[1]);
+            }
+            // 判断
+            if (StringUtils.isBlank(jwt)) {
+                logger.error("JWT 变量为空.");
+            } else {
+                userName = JwtUtil.getUserName(jwt);
+            }
+            // TOKEN校验
+            if (!JwtUtil.verify(jwt, userName)) {
+                // 如果不存在/过期了,返回未验证错误,需重新验证
+                logger.info("------token过期----{}" , decodedAccessToken);
+                // 定义响应头部信息
+                response.setStatusCode(HttpStatus.UNAUTHORIZED);
+                response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
+
+                //定义响应体
+                JSONObject result = new JSONObject(){{
+                    put("code",1002);
+                    put("message","用户令牌已过期,请重新登录");
+                    put("data","");
+                }};
+
+                //作JSON转换
+                byte[] bytes = JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8);
+
+                //调用bufferFactory方法,生成DataBuffer对象
+                DataBuffer buffer = response.bufferFactory().wrap(bytes);
+
+                //调用Mono中的just方法,返回要写给前端的JSON数据
+                return response.writeWith(Mono.just(buffer));
+            }
+        } else {
+            logger.info("------token为空----{}" , decodedAccessToken);
+            // 定义响应头部信息
+            response.setStatusCode(HttpStatus.UNAUTHORIZED);
+            response.getHeaders().setContentType(MediaType.APPLICATION_JSON);
+
+            //定义响应体
+            JSONObject result = new JSONObject(){{
+                put("code",1000);
+                put("message","用户令牌为空,请重新登录");
+                put("data","");
+            }};
+
+            //作JSON转换
+            byte[] bytes = JSON.toJSONString(result).getBytes(StandardCharsets.UTF_8);
+
+            //调用bufferFactory方法,生成DataBuffer对象
+            DataBuffer buffer = response.bufferFactory().wrap(bytes);
+
+            //调用Mono中的just方法,返回要写给前端的JSON数据
+            return response.writeWith(Mono.just(buffer));
+        }
         return chain.filter(exchange);
     }