Configurarea canalului gRPC al Pub/Sub Java pentru HTTP CONNECT
Instalați un ProxyDetector prin furnizorul de canal GAX, păstrând adresa țintă și identitatea TLS ale Pub/Sub.
Folosiți furnizorul de canal al clientului generat când o conexiune Pub/Sub Java gRPC are nevoie de un proxy HTTP CONNECT. O setare URLConnection obișnuită nu stabilește această configurație de canal.
Pentru clientul topic-admin:
var channelProvider = TopicAdminSettings
.defaultGrpcTransportProviderBuilder()
.setChannelConfigurator(channel -> channel.proxyDetector(target ->
HttpConnectProxiedSocketAddress.newBuilder()
.setProxyAddress(new InetSocketAddress("proxy.example", 8080))
.setTargetAddress((InetSocketAddress) target)
.setUsername(proxyUser)
.setPassword(proxyPassword)
.build()))
.build();
var settings = TopicAdminSettings.newBuilder()
.setTransportChannelProvider(channelProvider)
.build();
try (TopicAdminClient client = TopicAdminClient.create(settings)) {
// Perform the application's intended topic-admin operation here.
}TopicAdminClient și TopicAdminSettings sunt clase Pub/Sub v1; HttpConnectProxiedSocketAddress provine din io.grpc, iar InetSocketAddress din java.net. Exemplul presupune ținta obișnuită de adresă de internet folosită de acest canal.
Detectorul returnează o adresă de conexiune proxy alături de ținta originală. Constructorul gRPC cere ca adresa proxy să fie rezolvată. Lăsați punctul final al serviciului ca Pub/Sub: înlocuirea lui cu numele de gazdă al proxy-ului ar pierde ținta serviciului și identitatea TLS dorită.
Eliminați apelurile de nume de utilizator/parolă pentru un proxy neautentificat; candidați HTTP publici se găsesc în lista de proxy-uri HTTP. Acele apeluri sunt interfața de acreditări HTTP CONNECT, nu SOCKS sau o implementare NTLM generală.
Dacă eșecul apare înainte de operația gRPC în timp ce o acreditare creată independent obține un token, inspectați ruta HTTP a acelei acreditări. Se află în afara furnizorului de canal prezentat aici.