Конфигурирање на gRPC каналот на Pub/Sub Java за HTTP CONNECT
Инсталирајте ProxyDetector преку GAX добавувачот на канал, задржувајќи ја целната адреса и TLS идентитетот на Pub/Sub.
Користете го добавувачот на канал на генерираниот клиент кога врската Pub/Sub Java gRPC бара HTTP CONNECT прокси. Обичната поставка URLConnection не ја воспоставува оваа конфигурација на канал.
За клиентот 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 и TopicAdminSettings се класи на Pub/Sub v1; HttpConnectProxiedSocketAddress доаѓа од io.grpc, а InetSocketAddress од java.net. Примерот претпоставува вообичаена интернет-адреса како цел што ја користи овој канал.
Детекторот враќа адреса на прокси-врска заедно со оригиналната цел. gRPC-градителот бара адресата на проксито да биде резолвирана. Оставете ја крајната точка на услугата како Pub/Sub: нејзината замена со името на домаќинот на проксито би ја изгубила целта на услугата и предвидениот TLS идентитет.
Отстранете ги повиците за корисничко име/лозинка за прокси без автентикација; јавни HTTP кандидати има во листата со HTTP прокси-сервери. Тие повици се интерфејсот за акредитиви на HTTP CONNECT, а не SOCKS или општа NTLM имплементација.
Ако грешката се случи пред gRPC-операцијата додека независно создадени акредитиви добиваат токен, проверете ја HTTP-рутата на тие акредитиви. Таа е надвор од овде прикажаниот добавувач на канал.