日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

routing zuul_zuul自定义SimpleHostRoutingFilter

發(fā)布時(shí)間:2025/3/15 编程问答 23 豆豆
生活随笔 收集整理的這篇文章主要介紹了 routing zuul_zuul自定义SimpleHostRoutingFilter 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

zuul的SimpleHostRoutingFilter主要用來(lái)轉(zhuǎn)發(fā)不走eureka的proxy,里頭是使用httpclient來(lái)轉(zhuǎn)發(fā)請(qǐng)求的,但是有時(shí)候我們需要改動(dòng)相關(guān)httpclient的配置,這個(gè)時(shí)候,就需要修改SimpleHostRoutingFilter了,這里講一下如何擴(kuò)展SimpleHostRoutingFilter。

自定義SimpleHostRoutingFilter

比如把httpclient的CookieSpec設(shè)置為default,比如把SSLContext升級(jí)為T(mén)LSv1.2

public class CustomHostRoutingFilter extends SimpleHostRoutingFilter{

private static final Logger LOGGER = LoggerFactory.getLogger(CustomHostRoutingFilter.class);

@Value("${zuul.host.socket-timeout-millis}")

int SOCKET_TIMEOUT;

@Value("${zuul.host.connect-timeout-millis}")

int CONNECTION_TIMEOUT;

private ZuulProperties.Host hostProperties;

private boolean sslHostnameValidationEnabled;

private PoolingHttpClientConnectionManager connectionManager;

public CustomHostRoutingFilter(ProxyRequestHelper helper, ZuulProperties properties) {

super(helper, properties);

this.sslHostnameValidationEnabled = properties.isSslHostnameValidationEnabled();

this.hostProperties = properties.getHost();

LOGGER.error("CustomHostRoutingFilter init");

}

@Override

protected CloseableHttpClient newClient() {

final RequestConfig requestConfig = RequestConfig.custom()

.setSocketTimeout(SOCKET_TIMEOUT)

.setConnectTimeout(CONNECTION_TIMEOUT)

// 這里改為default

.setCookieSpec(CookieSpecs.DEFAULT).build();

HttpClientBuilder httpClientBuilder = HttpClients.custom();

if (!this.sslHostnameValidationEnabled) {

httpClientBuilder.setSSLHostnameVerifier(NoopHostnameVerifier.INSTANCE);

}

return httpClientBuilder.setConnectionManager(newConnectionManager())

.disableContentCompression()

.useSystemProperties().setDefaultRequestConfig(requestConfig)

.setRetryHandler(new DefaultHttpRequestRetryHandler(0, false))

.setRedirectStrategy(new RedirectStrategy() {

@Override

public boolean isRedirected(HttpRequest request,

HttpResponse response, HttpContext context)

throws ProtocolException {

return false;

}

@Override

public HttpUriRequest getRedirect(HttpRequest request,

HttpResponse response, HttpContext context)

throws ProtocolException {

return null;

}

}).build();

}

@Override

protected PoolingHttpClientConnectionManager newConnectionManager() {

try {

// 這里改為T(mén)LS

final SSLContext sslContext = SSLContext.getInstance("TLSv1.2");

sslContext.init(null, new TrustManager[] { new X509TrustManager() {

@Override

public void checkClientTrusted(X509Certificate[] x509Certificates,

String s) throws CertificateException {

}

@Override

public void checkServerTrusted(X509Certificate[] x509Certificates,

String s) throws CertificateException {

}

@Override

public X509Certificate[] getAcceptedIssuers() {

return null;

}

} }, new SecureRandom());

RegistryBuilder registryBuilder = RegistryBuilder

. create()

.register(HTTP_SCHEME, PlainConnectionSocketFactory.INSTANCE);

if (this.sslHostnameValidationEnabled) {

registryBuilder.register(HTTPS_SCHEME,

new SSLConnectionSocketFactory(sslContext));

}

else {

registryBuilder.register(HTTPS_SCHEME, new SSLConnectionSocketFactory(

sslContext, NoopHostnameVerifier.INSTANCE));

}

final Registry registry = registryBuilder.build();

this.connectionManager = new PoolingHttpClientConnectionManager(registry, null, null, null,

hostProperties.getTimeToLive(), hostProperties.getTimeUnit());

this.connectionManager

.setMaxTotal(this.hostProperties.getMaxTotalConnections());

this.connectionManager.setDefaultMaxPerRoute(

this.hostProperties.getMaxPerRouteConnections());

return this.connectionManager;

}

catch (Exception ex) {

throw new RuntimeException(ex);

}

}

}

配置自定義的filter

@Configuration

@EnableZuulProxy

public class CustomZuulProxyConfig extends ZuulProxyConfiguration{

@Bean

@Override

public SimpleHostRoutingFilter simpleHostRoutingFilter(ProxyRequestHelper helper,

ZuulProperties zuulProperties) {

return new CustomHostRoutingFilter(helper, zuulProperties);

}

}

這樣就大功告成了

doc

創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)

總結(jié)

以上是生活随笔為你收集整理的routing zuul_zuul自定义SimpleHostRoutingFilter的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 欧美视频在线一区 | 国产美女在线看 | 免费精品 | 色呦呦网站入口 | 男人操女人的软件 | 131美女爱做视频 | 黄色片视频播放 | 99爱视频在线 | 国产成人无码精品久在线观看 | 成人免费观看视频大全 | 五月婷婷六月婷婷 | 国产精欧美一区二区三区蓝颜男同 | 99精品欧美 | 久久av综合网 | 少妇做爰免费视看片 | 国产另类在线 | 蜜桃在线一区 | 中国男女全黄大片 | 我们的2018在线观看免费高清 | 国产日产精品一区二区三区 | 欧美一区二区三区四区在线 | 一道本在线观看 | 超碰影院在线 | 日韩在线视频网址 | 久久免费公开视频 | 人妻少妇偷人精品久久久任期 | 欧美精品v国产精品v日韩精品 | 亚洲精品福利 | 日本黄色网络 | 一二三区免费视频 | 91亚洲精品久久久久久久久久久久 | bl无遮挡高h动漫 | 性色av蜜臀av浪潮av老女人 | 国产在线高潮 | 亚洲精品少妇 | 国产黄色av片 | 黄色小说在线看 | 成人精品视频在线观看 | 热久久亚洲| 性久久久久 | 成年人观看视频 | 日日爱666 | 日韩av黄色片 | 黄色av网站在线看 | 91正在播放| 福利国产在线 | 成年人免费毛片 | 一级片免费网址 | 亚洲黄色免费视频 | 天天爽夜夜爽视频 | 久操网在线 | 麻豆免费视频 | 扒开jk护士狂揉免费 | 日韩精品高清视频 | 国产免费一区二区三区最新6 | 日韩色图片 | 精品区一区二区 | 久久精品视频免费播放 | av爽妇网 | 青青草这里只有精品 | 国产精品日日摸夜夜爽 | 奇米影视77777| 4444亚洲人成无码网在线观看 | 法国经典free性复古xxxx | 大尺度床戏揉捏胸视频 | 国产日产精品一区二区三区四区 | 国产精品国产三级国产Av车上的 | 放几个免费的毛片出来看 | 国产在线二区 | 国产成人福利在线 | 嫩草影院一区二区三区 | 欧美自偷自拍 | 日本视频不卡 | 91av久久久 | 肉色欧美久久久久久久免费看 | 欧美小视频在线 | 国产精品无码免费专区午夜 | 亚洲欧美综合精品久久成人 | 图书馆的女友在线观看 | 麻豆视频免费在线观看 | 欧美在线一区二区三区四区 | 国产综合视频在线观看 | 在线观看亚洲大片短视频 | 97偷拍视频 | 久久国产精品二区 | 国产精品五区 | 长河落日电视连续剧免费观看 | 高清国产一区二区三区四区五区 | 亚洲一区 欧美 | 欧美色图另类 | 伊人网亚洲| 夜夜春av| 一区视频免费观看 | 亚洲人成网址 | 亚洲av无码国产精品久久 | www.久久精品视频 | 草久视频在线观看 | 美女av影院 | 亚洲狼人在线 |