From 7c3418c45926b5288b22044d60dbb12fa2c982d0 Mon Sep 17 00:00:00 2001 From: xusd <hugeinfo123> Date: Fri, 27 Sep 2024 18:02:40 +0800 Subject: [PATCH] 大厅登记接口优化 --- 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