Я пытаюсь настроить HTTP -прокси (без подключения поддержки туннелирования) для моих Spring Webflux WebClients (на основе Netty httpclient), но без успеха (403 http code). < /p>
Как объяснено в документации: < /p>
/>[*]https://projectrector.io/docs/netty/sna ... xy_support
[*]https://docs.spring.io/projectrector/re ... xy_support
https://github.com/netty/netty/sisues/10475> https://github.com/netty/netty/sisues/10475> />
HTTP -прокси -поддержка Netty's HTTP всегда использует метод Connect для установления туннеля для указанного прокси < /strong> независимо от схемы, которая используется HTTP или HTTPS. (Дополнительная информация: Netty обеспечивает HTTP -прокси для поддержки метода подключения HTTP). Некоторые прокси могут не поддерживать метод подключения , когда схема является HTTP или может быть настроена для поддержки этого способа связи. Иногда это может быть причиной того, чтобы не иметь возможности подключиться к прокси. Рассмотрим проверку документации по прокси, поддерживает ли она или нуждается в дополнительной конфигурации, чтобы поддержать метод подключения.import io.netty.resolver.DefaultAddressResolverGroup;
import lombok.Data;
import org.springframework.boot.context.properties.ConfigurationProperties;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.context.annotation.Primary;
import reactor.netty.http.client.HttpClient;
import reactor.netty.transport.ProxyProvider;
@Data
@Configuration
@ConfigurationProperties(prefix = "proxy")
public class ProxyConfiguration {
private boolean enabled = false;
private HttpProxy http = new HttpProxy();
@Data
public static class HttpProxy {
private String host = "localhost";
private Integer port = 8080;
private String noProxy = "localhost|127.0.0.1";
private HttpProxyAuthentication authentication = new HttpProxyAuthentication();
@Data
public static class HttpProxyAuthentication {
private boolean enabled = false;
private String username;
private String password;
}
}
@Bean
@Primary
public HttpClient httpClient() {
HttpClient httpClient = HttpClient.create().resolver(DefaultAddressResolverGroup.INSTANCE).followRedirect(true);
if (this.isEnabled()) {
httpClient = httpClient.proxy(proxy -> {
ProxyProvider.Builder builder = proxy.type(ProxyProvider.Proxy.HTTP)
.host(this.getHttp().getHost())
.port(this.getHttp().getPort())
.nonProxyHosts(this.getHttp().getNoProxy());
// Add authentication if enabled
if (this.getHttp().getAuthentication().isEnabled() &&
this.getHttp().getAuthentication().getUsername() != null &&
this.getHttp().getAuthentication().getPassword() != null) {
builder.username(this.getHttp().getAuthentication().getUsername())
.password(ignored -> this.getHttp().getAuthentication().getPassword());
}
});
} else {
httpClient = httpClient.proxyWithSystemProperties();
}
return httpClient;
}
}
< /code>
@Bean
public WebClient eebClient(HttpClient httpClient) {
return WebClient.builder()
.baseUrl(BASE_URL)
.clientConnector(new ReactorClientHttpConnector(httpClient))
.build();
}
< /code>
Какие параметры я должен обойти это ограничение Netty HttpClient и использовать HTTP -прокси без поддержки подключения туннелирования? Переход от Netty на причал Httpclient или другие альтернативы также в порядке, если они поддерживаются интерфейсом Spring WebClient.
Подробнее здесь: https://stackoverflow.com/questions/797 ... ect-tunnel
Как настроить HTTP Worth Proxy (вместо подключения туннеля)? ⇐ JAVA
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Webflux netty httpclient: как настроить Http Worth Proxy (вместо подключения туннеля)?
Anonymous » » в форуме JAVA - 0 Ответы
- 3 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Запрос Curl в PHP с IP -списком Proxy - proxy.webshare.io - не удалось подключиться
Anonymous » » в форуме Php - 0 Ответы
- 13 Просмотры
-
Последнее сообщение Anonymous
-