Commit 326f4cff by Nepxion

修改测试用例

parent e20534a9
...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example.gateway; ...@@ -12,6 +12,9 @@ package com.nepxion.discovery.plugin.example.gateway;
import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.builder.SpringApplicationBuilder; import org.springframework.boot.builder.SpringApplicationBuilder;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient; import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.context.annotation.Bean;
import com.nepxion.discovery.plugin.example.gateway.extension.MyDiscoveryEnabledAdapter;
@SpringBootApplication @SpringBootApplication
@EnableDiscoveryClient @EnableDiscoveryClient
...@@ -22,6 +25,11 @@ public class DiscoveryApplicationGateway { ...@@ -22,6 +25,11 @@ public class DiscoveryApplicationGateway {
new SpringApplicationBuilder(DiscoveryApplicationGateway.class).run(args); new SpringApplicationBuilder(DiscoveryApplicationGateway.class).run(args);
} }
@Bean
public MyDiscoveryEnabledAdapter myDiscoveryEnabledAdapter() {
return new MyDiscoveryEnabledAdapter();
}
/*@Bean /*@Bean
public RouteLocator routeLocator(RouteLocatorBuilder builder) { public RouteLocator routeLocator(RouteLocatorBuilder builder) {
return builder return builder
......
package com.nepxion.discovery.plugin.example.gateway.extension;
/**
* <p>Title: Nepxion Discovery</p>
* <p>Description: Nepxion Discovery</p>
* <p>Copyright: Copyright (c) 2017-2050</p>
* <p>Company: Nepxion</p>
* @author Haojun Ren
* @version 1.0
*/
import java.util.Map;
import org.apache.commons.lang3.StringUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import com.nepxion.discovery.plugin.framework.adapter.PluginAdapter;
import com.nepxion.discovery.plugin.strategy.discovery.DiscoveryEnabledAdapter;
import com.nepxion.discovery.plugin.strategy.extension.gateway.context.GatewayStrategyContext;
import com.netflix.loadbalancer.Server;
public class MyDiscoveryEnabledAdapter implements DiscoveryEnabledAdapter {
private static final Logger LOG = LoggerFactory.getLogger(MyDiscoveryEnabledAdapter.class);
@Autowired
protected PluginAdapter pluginAdapter;
@Override
public boolean apply(Server server) {
GatewayStrategyContext context = GatewayStrategyContext.getCurrentContext();
String token = context.getExchange().getRequest().getHeaders().getFirst("token");
// String value = context.getExchange().getRequest().getQueryParams().getFirst("value");
// 执行完后,请手工清除上下文对象,否则可能会造成内存泄露
GatewayStrategyContext.clearCurrentContext();
String serviceId = server.getMetaInfo().getAppName().toLowerCase();
Map<String, String> metadata = pluginAdapter.getServerMetadata(server);
LOG.info("Gateway端负载均衡用户定制触发:serviceId={}, host={}, metadata={}, context={}", serviceId, server.toString(), metadata, context);
if (StringUtils.equals(token, "abc")) {
return false;
}
return true;
}
}
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment