Konfiguracja kanału gRPC Pub/Sub Java dla HTTP CONNECT
Zainstaluj ProxyDetector przez dostawcę kanału GAX, zachowując adres docelowy i tożsamość TLS Pub/Sub.
Użyj dostawcy kanału wygenerowanego klienta, gdy połączenie Pub/Sub Java gRPC wymaga proxy HTTP CONNECT. Zwykłe ustawienie URLConnection nie tworzy tej konfiguracji kanału.
Dla 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 i TopicAdminSettings to klasy Pub/Sub v1; HttpConnectProxiedSocketAddress pochodzi z io.grpc, a InetSocketAddress z java.net. Przykład zakłada zwykły cel w postaci adresu internetowego używanego przez ten kanał.
Detektor zwraca adres połączenia proxy wraz z pierwotnym celem. Kreator gRPC wymaga, aby adres proxy został rozwiązany. Pozostaw punkt końcowy usługi jako Pub/Sub: zastąpienie go nazwą hosta proxy utraciłoby cel usługi i zamierzoną tożsamość TLS.
Usuń wywołania nazwy użytkownika/hasła dla proxy bez uwierzytelniania; publiczne kandydaty HTTP można znaleźć na liście proxy HTTP. Te wywołania to interfejs poświadczeń HTTP CONNECT, a nie SOCKS ani ogólna implementacja NTLM.
Jeśli błąd wystąpi przed operacją gRPC, a niezależnie utworzone poświadczenie uzyskuje token, sprawdź trasę HTTP tego poświadczenia. Znajduje się ona poza pokazanym tutaj dostawcą kanału.