Konfigurera Pub/Sub Javas gRPC-kanal för HTTP CONNECT
Installera en ProxyDetector via GAX-kanalleverantören och behåll Pub/Subs måladress och TLS-identitet.
Använd den genererade klientens kanalleverantör när en Pub/Sub Java gRPC-anslutning behöver en HTTP CONNECT-proxy. En vanlig URLConnection-inställning upprättar inte denna kanalkonfiguration.
För topic-admin-klienten:
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 och TopicAdminSettings är Pub/Sub v1-klasser; HttpConnectProxiedSocketAddress kommer från io.grpc och InetSocketAddress från java.net. Exemplet förutsätter det vanliga internetadressmål som denna kanal använder.
Detektorn returnerar en proxyanslutningsadress tillsammans med det ursprungliga målet. gRPC-byggaren kräver att proxyadressen löses upp. Låt tjänstens slutpunkt vara Pub/Sub: att ersätta den med proxyns värdnamn skulle förlora tjänstemålet och den avsedda TLS-identiteten.
Ta bort användarnamn-/lösenordsanropen för en oautentiserad proxy; offentliga HTTP-kandidater finns i listan med HTTP-proxyer. Dessa anrop är HTTP CONNECT-autentiseringsgränssnittet, inte SOCKS eller en allmän NTLM-implementering.
Om felet inträffar före gRPC-åtgärden medan en självständigt skapad autentiseringsuppgift får en token, undersök den autentiseringsuppgiftens HTTP-väg. Den ligger utanför kanalleverantören som visas här.