From bfe4e6e49ea341c8443d7b4b70cb66de0f1aadab Mon Sep 17 00:00:00 2001
From: ke <893754509@qq.com>
Date: Tue, 03 Dec 2024 09:53:22 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/jtdev' into jtdev
---
skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java | 65 +++++++++++++++++++++++++++++++-
1 files changed, 63 insertions(+), 2 deletions(-)
diff --git a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java
index 8deb05a..70e90ea 100644
--- a/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java
+++ b/skjcmanager/skjcmanager-gateway/src/main/java/cn/gistack/gateway/filter/AuthFilter.java
@@ -42,6 +42,7 @@
import reactor.core.publisher.Mono;
import java.nio.charset.StandardCharsets;
+import java.util.Base64;
/**
* 鉴权认证
@@ -59,6 +60,7 @@
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+
//校验 Token 放行
String originalRequestUrl = RequestProvider.getOriginalRequestUrl(exchange);
String path = exchange.getRequest().getURI().getPath();
@@ -88,13 +90,72 @@
}
}
return chain.filter(exchange);
+
+
+ //校验 Token 放行
+// String originalRequestUrl = RequestProvider.getOriginalRequestUrl(exchange);
+// String path = exchange.getRequest().getURI().getPath();
+// if (isSkip(originalRequestUrl)) {
+// return chain.filter(exchange);
+// }
+//
+// //校验 Token 合法性
+// ServerHttpResponse resp = exchange.getResponse();
+// String headerToken = exchange.getRequest().getHeaders().getFirst(AuthProvider.AUTH_KEY);
+// String paramToken = exchange.getRequest().getQueryParams().getFirst(AuthProvider.AUTH_KEY);
+//
+// //校验 basic 放行
+// if (isSkip(path)) {
+// String header = exchange.getRequest().getHeaders().getFirst("Authorization");
+// if (header == null || !header.startsWith("Basic")) {
+// return unAuth(resp, "缺失令牌,鉴权失败");
+// }
+//
+// byte[] base64Token = header.substring(6).getBytes();
+//
+// byte[] decoded;
+// try {
+// decoded = Base64.getDecoder().decode(base64Token);
+// } catch (IllegalArgumentException var7) {
+// return unAuth(resp, "缺失令牌,鉴权失败");
+// }
+// String token = new String(decoded);
+// int index = token.indexOf(":");
+//
+// String[] tokens = new String[]{token.substring(0, index), token.substring(index + 1)};
+// if (tokens.length <= 0) {
+// return unAuth(resp, "缺失令牌,鉴权失败");
+// }
+//
+// return chain.filter(exchange);
+// }
+//
+// if (StringUtils.isBlank(headerToken) && StringUtils.isBlank(paramToken)) {
+// return unAuth(resp, "缺失令牌,鉴权失败");
+// }
+// String auth = StringUtils.isBlank(headerToken) ? paramToken : headerToken;
+// String token = JwtUtil.getToken(auth);
+// Claims claims = JwtUtil.parseJWT(token);
+// if (token == null || claims == null) {
+// return unAuth(resp, "请求未授权");
+// }
+// //判断 Token 状态
+// if (jwtProperties.getState()) {
+// String tenantId = String.valueOf(claims.get(TokenConstant.TENANT_ID));
+// String userId = String.valueOf(claims.get(TokenConstant.USER_ID));
+// String accessToken = JwtUtil.getAccessToken(tenantId, userId, token);
+// if (!token.equalsIgnoreCase(accessToken)) {
+// return unAuth(resp, "令牌已失效");
+// }
+// }
+// return chain.filter(exchange);
}
private boolean isSkip(String path) {
return AuthProvider.getDefaultSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path))
|| authProperties.getSkipUrl().stream().anyMatch(pattern -> antPathMatcher.match(pattern, path))
- || authProperties.getAuth().stream().anyMatch(auth -> antPathMatcher.match(auth.getPattern(), path))
- || authProperties.getBasic().stream().anyMatch(basic -> antPathMatcher.match(basic.getPattern(), path))
+ || authProperties.getAuth().stream().anyMatch(auth -> antPathMatcher.match(auth.getPattern(), path))
+ || authProperties.getBasic().stream().anyMatch(basic -> antPathMatcher.match(basic.getPattern(), path))
|| authProperties.getSign().stream().anyMatch(sign -> antPathMatcher.match(sign.getPattern(), path));
}
--
Gitblit v1.9.3