From 5a56b5f98b6b99f3fba51de23e5eed918d87c188 Mon Sep 17 00:00:00 2001 From: tanghc Date: Fri, 16 Aug 2019 09:02:40 +0800 Subject: [PATCH] =?UTF-8?q?gateway=E5=8A=A8=E6=80=81=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- doc/docs/_sidebar.md | 64 +++++++++---------- doc/docs/files/10111_动态修改请求参数.md | 2 +- .../sop/gatewaycommon/bean/ApiConfig.java | 4 +- .../gateway/ServerWebExchangeUtil.java | 12 ++++ .../BaseGatewayConfiguration.java | 6 ++ .../gateway/filter/LimitFilter.java | 4 +- .../filter/ParameterFormatterFilter.java | 41 ++++++++++++ .../gateway/filter/ValidateFilter.java | 4 +- .../gateway/param/GatewayParamBuilder.java | 6 +- .../NameVersionRoutePredicateFactory.java | 14 ++-- .../manager/AbstractConfiguration.java | 8 +++ ...ParameterFormatter.java => Formatter.java} | 2 +- .../param/ParameterFormatter.java | 10 +++ .../configuration/BaseZuulConfiguration.java | 8 --- .../filter/PreParameterFormatterFilter.java | 8 +-- .../zuul/param/ZuulParameterFormatter.java | 10 --- 16 files changed, 132 insertions(+), 71 deletions(-) create mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ParameterFormatterFilter.java rename sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/{ParameterFormatter.java => Formatter.java} (82%) create mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParameterFormatter.java delete mode 100644 sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParameterFormatter.java diff --git a/doc/docs/_sidebar.md b/doc/docs/_sidebar.md index 767cf8cc..d201e865 100644 --- a/doc/docs/_sidebar.md +++ b/doc/docs/_sidebar.md @@ -1,34 +1,34 @@ -* [首页](/?t=1565767132305) +* [首页](/?t=1565916799573) * 开发文档 - * [快速体验](files/10010_快速体验.md?t=1565767132307) - * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1565767132325) - * [新增接口](files/10020_新增接口.md?t=1565767132325) - * [业务参数校验](files/10030_业务参数校验.md?t=1565767132325) - * [错误处理](files/10040_错误处理.md?t=1565767132325) - * [编写文档](files/10041_编写文档.md?t=1565767132326) - * [接口交互详解](files/10050_接口交互详解.md?t=1565767132326) - * [easyopen支持](files/10070_easyopen支持.md?t=1565767132326) - * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1565767132326) - * [ISV管理](files/10085_ISV管理.md?t=1565767132326) - * [自定义路由](files/10086_自定义路由.md?t=1565767132326) - * [自定义返回结果](files/10087_自定义返回结果.md?t=1565767132326) - * [自定义过滤器](files/10088_自定义过滤器.md?t=1565767132326) - * [路由授权](files/10090_路由授权.md?t=1565767132326) - * [接口限流](files/10092_接口限流.md?t=1565767132326) - * [监控日志](files/10093_监控日志.md?t=1565767132327) - * [SDK开发](files/10095_SDK开发.md?t=1565767132327) - * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1565767132327) - * [应用授权](files/10097_应用授权.md?t=1565767132327) - * [传统web开发](files/10100_传统web开发.md?t=1565767132327) - * [文件上传](files/10104_文件上传.md?t=1565767132327) - * [nacos注册中心](files/10106_nacos注册中心.md?t=1565767132327) - * [扩展其它注册中心](files/10107_扩展其它注册中心.md?t=1565767132327) - * [配置Sleuth链路追踪](files/10109_配置Sleuth链路追踪.md?t=1565767132327) - * [预发布灰度发布](files/10110_预发布灰度发布.md?t=1565767132327) - * [动态修改请求参数](files/10111_动态修改请求参数.md?t=1565767132327) + * [快速体验](files/10010_快速体验.md?t=1565916799577) + * [项目接入到SOP](files/10011_项目接入到SOP.md?t=1565916799596) + * [新增接口](files/10020_新增接口.md?t=1565916799596) + * [业务参数校验](files/10030_业务参数校验.md?t=1565916799596) + * [错误处理](files/10040_错误处理.md?t=1565916799596) + * [编写文档](files/10041_编写文档.md?t=1565916799596) + * [接口交互详解](files/10050_接口交互详解.md?t=1565916799597) + * [easyopen支持](files/10070_easyopen支持.md?t=1565916799597) + * [使用签名校验工具](files/10080_使用签名校验工具.md?t=1565916799597) + * [ISV管理](files/10085_ISV管理.md?t=1565916799597) + * [自定义路由](files/10086_自定义路由.md?t=1565916799597) + * [自定义返回结果](files/10087_自定义返回结果.md?t=1565916799597) + * [自定义过滤器](files/10088_自定义过滤器.md?t=1565916799597) + * [路由授权](files/10090_路由授权.md?t=1565916799598) + * [接口限流](files/10092_接口限流.md?t=1565916799598) + * [监控日志](files/10093_监控日志.md?t=1565916799598) + * [SDK开发](files/10095_SDK开发.md?t=1565916799598) + * [使用SpringCloudGateway](files/10096_使用SpringCloudGateway.md?t=1565916799598) + * [应用授权](files/10097_应用授权.md?t=1565916799598) + * [传统web开发](files/10100_传统web开发.md?t=1565916799598) + * [文件上传](files/10104_文件上传.md?t=1565916799598) + * [nacos注册中心](files/10106_nacos注册中心.md?t=1565916799599) + * [扩展其它注册中心](files/10107_扩展其它注册中心.md?t=1565916799599) + * [配置Sleuth链路追踪](files/10109_配置Sleuth链路追踪.md?t=1565916799599) + * [预发布灰度发布](files/10110_预发布灰度发布.md?t=1565916799599) + * [动态修改请求参数](files/10111_动态修改请求参数.md?t=1565916799599) * 原理分析 - * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1565767132328) - * [原理分析之路由存储](files/90011_原理分析之路由存储.md?t=1565767132328) - * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1565767132328) - * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1565767132328) - * [常见问题](files/90100_常见问题.md?t=1565767132328) + * [原理分析之@ApiMapping](files/90010_原理分析之@ApiMapping.md?t=1565916799599) + * [原理分析之路由存储](files/90011_原理分析之路由存储.md?t=1565916799599) + * [原理分析之如何路由](files/90012_原理分析之如何路由.md?t=1565916799599) + * [原理分析之文档归纳](files/90013_原理分析之文档归纳.md?t=1565916799600) + * [常见问题](files/90100_常见问题.md?t=1565916799600) diff --git a/doc/docs/files/10111_动态修改请求参数.md b/doc/docs/files/10111_动态修改请求参数.md index 90f2f7f4..b8d1d89f 100644 --- a/doc/docs/files/10111_动态修改请求参数.md +++ b/doc/docs/files/10111_动态修改请求参数.md @@ -14,7 +14,7 @@ ```java public static void main(String[] args) { - ApiConfig.getInstance().setZuulParameterFormatter(requestParams -> { + ApiConfig.getInstance().setParameterFormatter(requestParams -> { // 获取biz_content JSONObject jsonObject = requestParams.getJSONObject(ParamNames.BIZ_CONTENT_NAME); // 修改biz_content中的值 diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java index ab6fb813..a61e9f6a 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/bean/ApiConfig.java @@ -18,6 +18,7 @@ import com.gitee.sop.gatewaycommon.manager.LimitConfigManager; import com.gitee.sop.gatewaycommon.manager.RouteConfigManager; import com.gitee.sop.gatewaycommon.manager.ServiceErrorManager; import com.gitee.sop.gatewaycommon.param.ParamBuilder; +import com.gitee.sop.gatewaycommon.param.ParameterFormatter; import com.gitee.sop.gatewaycommon.result.DataNameBuilder; import com.gitee.sop.gatewaycommon.result.DefaultDataNameBuilder; import com.gitee.sop.gatewaycommon.result.ResultAppender; @@ -34,7 +35,6 @@ import com.gitee.sop.gatewaycommon.validate.Signer; import com.gitee.sop.gatewaycommon.validate.Validator; import com.gitee.sop.gatewaycommon.zuul.configuration.ZuulErrorController; import com.gitee.sop.gatewaycommon.zuul.param.ZuulParamBuilder; -import com.gitee.sop.gatewaycommon.zuul.param.ZuulParameterFormatter; import com.gitee.sop.gatewaycommon.zuul.result.ZuulResultExecutor; import com.netflix.zuul.context.RequestContext; import lombok.Data; @@ -150,7 +150,7 @@ public class ApiConfig { */ private ZuulErrorController zuulErrorController = new ZuulErrorController(); - private ZuulParameterFormatter zuulParameterFormatter; + private ParameterFormatter parameterFormatter; // -------- fields --------- diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java index 09848028..d1e7a84f 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/ServerWebExchangeUtil.java @@ -125,5 +125,17 @@ public class ServerWebExchangeUtil { return new FileUploadHttpServletRequest(exchange.getRequest(), data); } + /** + * 修改请求参数 + * @param exchange ServerWebExchange + * @param apiParam 请求参数 + * @param consumer 执行参数更改 + * @param 参数类型 + * @return 返回新的ServerWebExchange + */ + public static > ServerWebExchange format(ServerWebExchange exchange, T apiParam, Consumer consumer) { + + return null; + } } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java index 5a3c2b6e..badbd26f 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/configuration/BaseGatewayConfiguration.java @@ -3,6 +3,7 @@ package com.gitee.sop.gatewaycommon.gateway.configuration; import com.gitee.sop.gatewaycommon.bean.ApiConfig; import com.gitee.sop.gatewaycommon.gateway.filter.GatewayModifyResponseGatewayFilter; import com.gitee.sop.gatewaycommon.gateway.filter.LoadBalancerClientExtFilter; +import com.gitee.sop.gatewaycommon.gateway.filter.ParameterFormatterFilter; import com.gitee.sop.gatewaycommon.gateway.filter.ValidateFilter; import com.gitee.sop.gatewaycommon.gateway.handler.GatewayExceptionHandler; import com.gitee.sop.gatewaycommon.gateway.route.GatewayRouteRepository; @@ -106,4 +107,9 @@ public class BaseGatewayConfiguration extends AbstractConfiguration { return gatewayRouteRepository; } + @Bean + ParameterFormatterFilter parameterFormatterFilter() { + return new ParameterFormatterFilter(); + } + } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java index ae7573c4..872df6d1 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/LimitFilter.java @@ -3,7 +3,7 @@ package com.gitee.sop.gatewaycommon.gateway.filter; import com.gitee.sop.gatewaycommon.bean.ApiConfig; import com.gitee.sop.gatewaycommon.bean.ConfigLimitDto; import com.gitee.sop.gatewaycommon.exception.ApiException; -import com.gitee.sop.gatewaycommon.gateway.GatewayContext; +import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; import com.gitee.sop.gatewaycommon.limit.LimitManager; import com.gitee.sop.gatewaycommon.limit.LimitType; import com.gitee.sop.gatewaycommon.manager.LimitConfigManager; @@ -34,7 +34,7 @@ public class LimitFilter implements GlobalFilter, Ordered { if (!apiConfig.isOpenLimit()) { return chain.filter(exchange); } - ApiParam apiParam = GatewayContext.getApiParam(exchange); + ApiParam apiParam = ServerWebExchangeUtil.getApiParam(exchange); ConfigLimitDto configLimitDto = this.findConfigLimitDto(apiConfig, apiParam, exchange); if (configLimitDto == null) { return null; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ParameterFormatterFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ParameterFormatterFilter.java new file mode 100644 index 00000000..5a15a658 --- /dev/null +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ParameterFormatterFilter.java @@ -0,0 +1,41 @@ +package com.gitee.sop.gatewaycommon.gateway.filter; + +import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; +import com.gitee.sop.gatewaycommon.param.ApiParam; +import com.gitee.sop.gatewaycommon.param.ParamNames; +import com.gitee.sop.gatewaycommon.param.ParameterFormatter; +import com.gitee.sop.gatewaycommon.zuul.ZuulContext; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.cloud.gateway.filter.GatewayFilterChain; +import org.springframework.cloud.gateway.filter.GlobalFilter; +import org.springframework.core.Ordered; +import org.springframework.web.server.ServerWebExchange; +import reactor.core.publisher.Mono; + +/** + * @author tanghc + */ +@Slf4j +public class ParameterFormatterFilter implements GlobalFilter, Ordered { + + @Autowired(required = false) + private ParameterFormatter sopParameterFormatter; + + @Override + public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { + ApiParam apiParam = ZuulContext.getApiParam(); + // 校验成功后进行参数转换 + if (sopParameterFormatter != null) { + ServerWebExchange formatExchange = ServerWebExchangeUtil.format(exchange, apiParam, sopParameterFormatter::format); + ServerWebExchange serverWebExchange = ServerWebExchangeUtil.addHeaders(formatExchange, httpHeaders -> httpHeaders.add(ParamNames.HEADER_VERSION_NAME, apiParam.fetchVersion())); + return chain.filter(serverWebExchange); + } + return chain.filter(exchange); + } + + @Override + public int getOrder() { + return 0; + } +} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ValidateFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ValidateFilter.java index 66e3e928..4a038386 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ValidateFilter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/filter/ValidateFilter.java @@ -1,7 +1,7 @@ package com.gitee.sop.gatewaycommon.gateway.filter; import com.gitee.sop.gatewaycommon.exception.ApiException; -import com.gitee.sop.gatewaycommon.gateway.GatewayContext; +import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; import com.gitee.sop.gatewaycommon.param.ApiParam; import com.gitee.sop.gatewaycommon.param.ParamBuilder; import com.gitee.sop.gatewaycommon.validate.Validator; @@ -29,7 +29,7 @@ public class ValidateFilter implements GlobalFilter, Ordered { public Mono filter(ServerWebExchange exchange, GatewayFilterChain chain) { // 解析参数 ApiParam param = paramBuilder.build(exchange); - GatewayContext.setApiParam(exchange, param); + ServerWebExchangeUtil.setApiParam(exchange, param); // 验证操作,这里有负责验证签名参数 try { validator.validate(param); diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java index dcdbe855..2867b184 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/param/GatewayParamBuilder.java @@ -1,6 +1,6 @@ package com.gitee.sop.gatewaycommon.gateway.param; -import com.gitee.sop.gatewaycommon.gateway.GatewayContext; +import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; import com.gitee.sop.gatewaycommon.param.BaseParamBuilder; import org.springframework.web.server.ServerWebExchange; @@ -13,8 +13,8 @@ import java.util.Map; public class GatewayParamBuilder extends BaseParamBuilder { @Override - public Map buildRequestParams(ServerWebExchange exchange) { - Map params = GatewayContext.getRequestParams(exchange); + public Map buildRequestParams(ServerWebExchange exchange) { + Map params = ServerWebExchangeUtil.getRequestParams(exchange); return params == null ? Collections.emptyMap() : params; } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/route/NameVersionRoutePredicateFactory.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/route/NameVersionRoutePredicateFactory.java index 10ffb40e..cb8a0a86 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/route/NameVersionRoutePredicateFactory.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/gateway/route/NameVersionRoutePredicateFactory.java @@ -1,7 +1,6 @@ package com.gitee.sop.gatewaycommon.gateway.route; -import com.gitee.sop.gatewaycommon.bean.SopConstants; -import com.gitee.sop.gatewaycommon.gateway.GatewayContext; +import com.gitee.sop.gatewaycommon.gateway.ServerWebExchangeUtil; import com.gitee.sop.gatewaycommon.param.ParamNames; import lombok.extern.slf4j.Slf4j; import org.springframework.cloud.gateway.handler.predicate.AbstractRoutePredicateFactory; @@ -45,14 +44,17 @@ public class NameVersionRoutePredicateFactory extends AbstractRoutePredicateFact public Predicate apply(Config config) { return exchange -> { - Map params = GatewayContext.getRequestParams(exchange); + Map params = ServerWebExchangeUtil.getRequestParams(exchange); if (CollectionUtils.isEmpty(params)) { return false; } String nameVersion = config.param; - String name = params.getOrDefault(ParamNames.API_NAME, SopConstants.UNKNOWN_METHOD); - String version = params.getOrDefault(ParamNames.VERSION_NAME, ""); - return (name + version).equals(nameVersion); + Object name = params.get(ParamNames.API_NAME); + Object version = params.get(ParamNames.VERSION_NAME); + if (name == null || version == null) { + return false; + } + return (name.toString() + version).equals(nameVersion); }; } diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/AbstractConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/AbstractConfiguration.java index 9b01bd32..af742251 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/AbstractConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/AbstractConfiguration.java @@ -6,6 +6,7 @@ import com.gitee.sop.gatewaycommon.bean.BeanInitializer; import com.gitee.sop.gatewaycommon.bean.SpringContext; import com.gitee.sop.gatewaycommon.limit.LimitManager; import com.gitee.sop.gatewaycommon.message.ErrorFactory; +import com.gitee.sop.gatewaycommon.param.ParameterFormatter; import com.gitee.sop.gatewaycommon.secret.IsvManager; import com.gitee.sop.gatewaycommon.session.SessionManager; import com.gitee.sop.gatewaycommon.validate.Validator; @@ -93,6 +94,13 @@ public class AbstractConfiguration implements ApplicationContextAware { return ApiConfig.getInstance().getSessionManager(); } + @Bean + @ConditionalOnMissingBean + ParameterFormatter sopParameterFormatter(){ + return ApiConfig.getInstance().getParameterFormatter(); + } + + /** * 跨域过滤器 * diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/ParameterFormatter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/Formatter.java similarity index 82% rename from sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/ParameterFormatter.java rename to sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/Formatter.java index 8fd2caf7..697f2ec8 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/ParameterFormatter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/manager/Formatter.java @@ -7,7 +7,7 @@ import java.util.Map; * * @author tanghc */ -public interface ParameterFormatter> { +public interface Formatter> { /** * 参数格式化,即动态修改请求参数 diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParameterFormatter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParameterFormatter.java new file mode 100644 index 00000000..92a7f7f6 --- /dev/null +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/param/ParameterFormatter.java @@ -0,0 +1,10 @@ +package com.gitee.sop.gatewaycommon.param; + +import com.alibaba.fastjson.JSONObject; +import com.gitee.sop.gatewaycommon.manager.Formatter; + +/** + * @author tanghc + */ +public interface ParameterFormatter extends Formatter { +} diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java index e93c5a33..f0470ec0 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/configuration/BaseZuulConfiguration.java @@ -1,10 +1,8 @@ package com.gitee.sop.gatewaycommon.zuul.configuration; -import com.alibaba.fastjson.JSONObject; import com.gitee.sop.gatewaycommon.bean.ApiConfig; import com.gitee.sop.gatewaycommon.bean.ApiContext; import com.gitee.sop.gatewaycommon.manager.AbstractConfiguration; -import com.gitee.sop.gatewaycommon.manager.ParameterFormatter; import com.gitee.sop.gatewaycommon.manager.RouteRepositoryContext; import com.gitee.sop.gatewaycommon.param.ParamBuilder; import com.gitee.sop.gatewaycommon.zuul.filter.ErrorFilter; @@ -47,12 +45,6 @@ public class BaseZuulConfiguration extends AbstractConfiguration { return ApiConfig.getInstance().getZuulParamBuilder(); } - @Bean - @ConditionalOnMissingBean - ParameterFormatter preParamFilter(){ - return ApiConfig.getInstance().getZuulParameterFormatter(); - } - /** * 路由存储 * @return diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreParameterFormatterFilter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreParameterFormatterFilter.java index 9f88470c..e7f725b4 100644 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreParameterFormatterFilter.java +++ b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/filter/PreParameterFormatterFilter.java @@ -2,8 +2,8 @@ package com.gitee.sop.gatewaycommon.zuul.filter; import com.gitee.sop.gatewaycommon.param.ApiParam; import com.gitee.sop.gatewaycommon.param.ParamNames; +import com.gitee.sop.gatewaycommon.param.ParameterFormatter; import com.gitee.sop.gatewaycommon.zuul.ZuulContext; -import com.gitee.sop.gatewaycommon.zuul.param.ZuulParameterFormatter; import com.gitee.sop.gatewaycommon.zuul.param.ZuulParameterUtil; import com.netflix.zuul.context.RequestContext; import com.netflix.zuul.exception.ZuulException; @@ -17,7 +17,7 @@ import org.springframework.beans.factory.annotation.Autowired; public class PreParameterFormatterFilter extends BaseZuulFilter { @Autowired(required = false) - private ZuulParameterFormatter zuulParameterFormatter; + private ParameterFormatter sopParameterFormatter; @Override protected FilterType getFilterType() { @@ -33,8 +33,8 @@ public class PreParameterFormatterFilter extends BaseZuulFilter { protected Object doRun(RequestContext requestContext) throws ZuulException { ApiParam apiParam = ZuulContext.getApiParam(); // 校验成功后进行参数转换 - if (zuulParameterFormatter != null) { - ZuulParameterUtil.format(apiParam, zuulParameterFormatter::format); + if (sopParameterFormatter != null) { + ZuulParameterUtil.format(apiParam, sopParameterFormatter::format); requestContext.addZuulRequestHeader(ParamNames.HEADER_VERSION_NAME, apiParam.fetchVersion()); } return null; diff --git a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParameterFormatter.java b/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParameterFormatter.java deleted file mode 100644 index 23885acd..00000000 --- a/sop-common/sop-gateway-common/src/main/java/com/gitee/sop/gatewaycommon/zuul/param/ZuulParameterFormatter.java +++ /dev/null @@ -1,10 +0,0 @@ -package com.gitee.sop.gatewaycommon.zuul.param; - -import com.alibaba.fastjson.JSONObject; -import com.gitee.sop.gatewaycommon.manager.ParameterFormatter; - -/** - * @author tanghc - */ -public interface ZuulParameterFormatter extends ParameterFormatter { -}