From ce8db97536e2ffa4513c79f39939ed796c5160ff Mon Sep 17 00:00:00 2001
From: liyj <15602261488@163.com>
Date: Sun, 22 Sep 2024 16:53:26 +0800
Subject: [PATCH] 1、获取tab和button接口优化
---
dyh-gateway/src/main/java/cn/huge/gateway/filter/AuthFilter.java | 79 +++++++++++++++++++--------------------
1 files changed, 38 insertions(+), 41 deletions(-)
diff --git a/dyh-gateway/src/main/java/cn/huge/gateway/filter/AuthFilter.java b/dyh-gateway/src/main/java/cn/huge/gateway/filter/AuthFilter.java
index d93e0cd..5c299ad 100644
--- a/dyh-gateway/src/main/java/cn/huge/gateway/filter/AuthFilter.java
+++ b/dyh-gateway/src/main/java/cn/huge/gateway/filter/AuthFilter.java
@@ -1,5 +1,6 @@
package cn.huge.gateway.filter;
+import cn.huge.gateway.utils.JsonMapper;
import cn.huge.gateway.utils.ReturnBO;
import cn.huge.gateway.utils.SpringContextUtil;
import com.auth0.jwt.JWT;
@@ -69,56 +70,52 @@
*/
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
- //开发环境不校验
- if (SpringContextUtil.checkDev()){
- return chain.filter(exchange);
- }else {
- String url = exchange.getRequest().getURI().getPath();
- //跳过不需要验证的路径
- List<String> skipAuthUrlList = Arrays.asList(skipAuthUrls);
- Boolean status = false;
- if (!CollectionUtils.isEmpty(skipAuthUrlList)) {
- for (String skipAuthUrl : skipAuthUrlList) {
- if (url.indexOf(skipAuthUrl) != -1) {
- status = true;
- break;
- }
+ String url = exchange.getRequest().getURI().getPath();
+ //跳过不需要验证的路径
+ List<String> skipAuthUrlList = Arrays.asList(skipAuthUrls);
+ Boolean status = false;
+ if (!CollectionUtils.isEmpty(skipAuthUrlList)) {
+ for (String skipAuthUrl : skipAuthUrlList) {
+ if (url.indexOf(skipAuthUrl) != -1) {
+ status = true;
+ break;
}
}
- if (status) {
- return chain.filter(exchange);
+ }
+ if (status) {
+ return chain.filter(exchange);
+ } else {
+ JsonMapper jsonMapper = new JsonMapper();
+ ReturnBO returnBO = new ReturnBO();
+ //从请求头中取出token
+ String token = exchange.getRequest().getHeaders().getFirst("Authorization");
+ //未携带token或token在黑名单内
+ if (StringUtils.isEmpty(token) || isBlackToken(token)) {
+ ServerHttpResponse originalResponse = exchange.getResponse();
+ originalResponse.setStatusCode(HttpStatus.OK);
+ originalResponse.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
+ returnBO.setCode(401);
+ returnBO.setMsg("您尚未登录,请登录后重试!");
+ byte[] response = jsonMapper.toJson(returnBO).getBytes(StandardCharsets.UTF_8);
+ DataBuffer buffer = originalResponse.bufferFactory().wrap(response);
+ return originalResponse.writeWith(Flux.just(buffer));
} else {
- ReturnBO returnBO = new ReturnBO();
- //从请求头中取出token
- String token = exchange.getRequest().getHeaders().getFirst("Authorization");
- //未携带token或token在黑名单内
- if (StringUtils.isEmpty(token) || isBlackToken(token)) {
+ //取出token包含的身份
+ returnBO = verifyJWT(token);
+ if (returnBO.getCode() != 0) {
ServerHttpResponse originalResponse = exchange.getResponse();
originalResponse.setStatusCode(HttpStatus.OK);
originalResponse.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
- returnBO.setCode(401);
- returnBO.setMsg("您尚未登录,请登录后重试!");
- byte[] response = returnBO.toString().getBytes(StandardCharsets.UTF_8);
+ byte[] response = jsonMapper.toJson(returnBO).getBytes(StandardCharsets.UTF_8);
DataBuffer buffer = originalResponse.bufferFactory().wrap(response);
return originalResponse.writeWith(Flux.just(buffer));
} else {
- //取出token包含的身份
- returnBO = verifyJWT(token);
- if (returnBO.getCode() != 0) {
- ServerHttpResponse originalResponse = exchange.getResponse();
- originalResponse.setStatusCode(HttpStatus.OK);
- originalResponse.getHeaders().add("Content-Type", "application/json;charset=UTF-8");
- byte[] response = returnBO.toString().getBytes(StandardCharsets.UTF_8);
- DataBuffer buffer = originalResponse.bufferFactory().wrap(response);
- return originalResponse.writeWith(Flux.just(buffer));
- } else {
- //将现在的request,添加当前身份
- String userId = (String) returnBO.getData();
- ServerHttpRequest mutableReq = null;
- exchange.getRequest().mutate().header("Authorization-userId", userId).build();
- ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build();
- return chain.filter(mutableExchange);
- }
+ //将现在的request,添加当前身份
+ String userId = (String) returnBO.getData();
+ ServerHttpRequest mutableReq = null;
+ exchange.getRequest().mutate().header("Authorization-userId", userId).build();
+ ServerWebExchange mutableExchange = exchange.mutate().request(mutableReq).build();
+ return chain.filter(mutableExchange);
}
}
}
--
Gitblit v1.8.0