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 | 89 ++++++++++++++++++++++++++++++--------------
1 files changed, 61 insertions(+), 28 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 39202cf..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
@@ -60,43 +60,17 @@
@Override
public Mono<Void> filter(ServerWebExchange exchange, GatewayFilterChain chain) {
+
//校验 Token 放行
String originalRequestUrl = RequestProvider.getOriginalRequestUrl(exchange);
String path = exchange.getRequest().getURI().getPath();
- if (isSkip(originalRequestUrl)) {
+ if (isSkip(path) || 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);
-
- 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, "缺失令牌,鉴权失败");
}
@@ -116,6 +90,65 @@
}
}
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) {
--
Gitblit v1.9.3