Nastavení gRPC kanálu Pub/Sub Java pro HTTP CONNECT
Nainstalujte ProxyDetector prostřednictvím poskytovatele kanálu GAX a zachovejte cílovou adresu i identitu TLS Pub/Sub.
Použijte poskytovatele kanálu generovaného klienta, když připojení Pub/Sub Java gRPC potřebuje proxy HTTP CONNECT. Běžné nastavení URLConnection tuto konfiguraci kanálu nevytvoří.
Pro klienta 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 a TopicAdminSettings jsou třídy Pub/Sub v1; HttpConnectProxiedSocketAddress pochází z io.grpc a InetSocketAddress z java.net. Příklad předpokládá obvyklý cíl v podobě internetové adresy, který tento kanál používá.
Detektor vrací adresu proxy připojení spolu s původním cílem. Tvůrce gRPC vyžaduje, aby byla adresa proxy přeložena. Koncový bod služby ponechte jako Pub/Sub: nahrazení názvem hostitele proxy by ztratilo cíl služby i zamýšlenou identitu TLS.
Odstraňte volání uživatelského jména/hesla u proxy bez ověřování; veřejné kandidáty HTTP najdete v seznamu HTTP proxy. Tato volání jsou rozhraním přihlašovacích údajů HTTP CONNECT, nikoli SOCKS nebo obecná implementace NTLM.
Pokud selhání nastane před operací gRPC, zatímco samostatně vytvořené přihlašovací údaje získají token, prozkoumejte HTTP trasu těchto údajů. Je mimo zde uvedeného poskytovatele kanálu.