From adad9945f670ce7c2203f9f66c12b6a1c3bd0931 Mon Sep 17 00:00:00 2001 From: gaozhaochen Date: Mon, 11 Sep 2023 12:20:52 +0800 Subject: [PATCH] =?UTF-8?q?update:=20ws=E9=97=AE=E8=AF=8A=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E6=B7=BB=E5=8A=A0token=E6=9D=83=E9=99=90=E6=A0=A1?= =?UTF-8?q?=E9=AA=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../gateway/filter/GptServerFilter.java | 32 +++++++++++-------- 1 file changed, 18 insertions(+), 14 deletions(-) diff --git a/cloud-common/cloud-common-gateway/src/main/java/cn/sh/stc/sict/cloud/common/gateway/filter/GptServerFilter.java b/cloud-common/cloud-common-gateway/src/main/java/cn/sh/stc/sict/cloud/common/gateway/filter/GptServerFilter.java index 9c6581d..76d486f 100644 --- a/cloud-common/cloud-common-gateway/src/main/java/cn/sh/stc/sict/cloud/common/gateway/filter/GptServerFilter.java +++ b/cloud-common/cloud-common-gateway/src/main/java/cn/sh/stc/sict/cloud/common/gateway/filter/GptServerFilter.java @@ -1,12 +1,11 @@ package cn.sh.stc.sict.cloud.common.gateway.filter; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.core.util.StrUtil; import cn.sh.stc.sict.cloud.common.core.util.R; - import cn.sh.stc.sict.cloud.common.gateway.feign.RemoteAuthService; import lombok.AllArgsConstructor; import lombok.extern.slf4j.Slf4j; -import org.apache.commons.lang.StringUtils; import org.springframework.cloud.gateway.filter.GatewayFilter; import org.springframework.cloud.gateway.filter.factory.AbstractGatewayFilterFactory; import org.springframework.http.server.reactive.ServerHttpRequest; @@ -24,14 +23,14 @@ public class GptServerFilter extends AbstractGatewayFilterFactory { public final RemoteAuthService remoteAuthService; - public static final String SEC_WEBSOCKET_PROTOCOL = "Sec-WebSocket-Protocol"; + public static final String WEB_TOKEN = "ws-token"; @Override public GatewayFilter apply(Object config) { return (exchange, chain) -> { ServerHttpRequest request = exchange.getRequest(); - String token = request.getHeaders().getFirst(SEC_WEBSOCKET_PROTOCOL); - log.info("ws-token{}", token); + String token = request.getQueryParams().getFirst(WEB_TOKEN); + log.error("ws-token = {}", token); // 权限校验 if (checkToken(token)) { return chain.filter(exchange); @@ -48,15 +47,20 @@ public class GptServerFilter extends AbstractGatewayFilterFactory { * @return */ private boolean checkToken(String token) { -// if (StringUtils.isEmpty(token)) { -// return false; -// } - return true; -// R valid = remoteAuthService.isValid(token); -// if (ObjectUtil.isNull(valid) || ObjectUtil.isNull(valid.getData())) { -// return false; -// } -// return valid.getData(); + try { + if (StrUtil.isBlank(token)) { + return false; + } + + R valid = remoteAuthService.isValid(token); + if (ObjectUtil.isNull(valid) || ObjectUtil.isNull(valid.getData())) { + return false; + } + return valid.getData(); + } catch (Exception e) { + log.error("权限校验失败", e); + return false; + } } } -- 2.22.0