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