Користите добављача канала генерисаног клијента када 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 руту тих акредитива. Она је изван овде приказаног добављача канала.

Повезани чланци