From 2a88967f5abac136d6f27c5207aeecdfcbcdcf7b Mon Sep 17 00:00:00 2001 From: wangkang Date: Mon, 7 Aug 2017 17:04:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- udf-starter-rms/pom.xml | 47 +++++++------- .../main/java/org/itkk/udf/rms/RmsConfig.java | 2 +- .../main/java/org/itkk/udf/rms/RmsFilter.java | 62 +++++++++++++++++++ 3 files changed, 89 insertions(+), 22 deletions(-) create mode 100644 udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsFilter.java diff --git a/udf-starter-rms/pom.xml b/udf-starter-rms/pom.xml index 5ffee9d..9f29be7 100644 --- a/udf-starter-rms/pom.xml +++ b/udf-starter-rms/pom.xml @@ -1,24 +1,29 @@ - 4.0.0 - - udf-starter-rms - udf-starter-rms - jar - http://www.egridcloud.com - - - org.itkk.udf - udf-starter - 1.0 - - - - - - org.itkk.udf - udf-starter-core - - + xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"> + 4.0.0 + + udf-starter-rms + udf-starter-rms + jar + http://www.egridcloud.com + + + org.itkk.udf + udf-starter + 1.0 + + + + + + org.itkk.udf + udf-starter-core + + + + com.netflix.zuul + zuul-core + + diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java b/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java index b0e90b1..54210b1 100644 --- a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java +++ b/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsConfig.java @@ -45,7 +45,7 @@ public class RmsConfig { @Bean @LoadBalanced @Primary - RestTemplate restTemplate(ClientHttpRequestFactory requestFactory) { + public RestTemplate restTemplate(ClientHttpRequestFactory requestFactory) { return new RestTemplate(requestFactory); } diff --git a/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsFilter.java b/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsFilter.java new file mode 100644 index 0000000..8287f97 --- /dev/null +++ b/udf-starter-rms/src/main/java/org/itkk/udf/rms/RmsFilter.java @@ -0,0 +1,62 @@ +package org.itkk.udf.rms; + +import com.netflix.zuul.ZuulFilter; +import com.netflix.zuul.context.RequestContext; +import org.itkk.udf.core.exception.AuthException; +import org.itkk.udf.rms.meta.ApplicationMeta; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; + +/** + * RmsFilter + */ +public class RmsFilter extends ZuulFilter { + + /** + * 描述 : 应用名称 + */ + @Value("${spring.application.name}") + private String springApplicationName; + + /** + * 描述 : 配置 + */ + @Autowired + private RmsProperties rmsProperties; + + @Override + public Object run() { + //获得request + RequestContext ctx = RequestContext.getCurrentContext(); + //获得应用元数据 + ApplicationMeta applicationMeta = rmsProperties.getApplication().get(springApplicationName); + //判空 + if (applicationMeta == null) { + throw new AuthException("unrecognized systemTag:" + springApplicationName); + } + //获得secret + String secret = applicationMeta.getSecret(); + //计算sign + String sign = Constant.sign(springApplicationName, secret); + //设置头 + ctx.addZuulRequestHeader(Constant.HEADER_RMS_APPLICATION_NAME_CODE, springApplicationName); + ctx.addZuulRequestHeader(Constant.HEADER_RMS_SIGN_CODE, sign); + //执行 + return null; + } + + @Override + public boolean shouldFilter() { + return true; + } + + @Override + public String filterType() { + return "pre"; + } + + @Override + public int filterOrder() { + return 0; + } +}