Koristite dobavljač kanala generisanog klijenta kada Pub/Sub Java gRPC vezi treba HTTP CONNECT proxy. Obična postavka URLConnection ne uspostavlja ovu konfiguraciju kanala.

Za topic-admin klijenta:

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 su klase Pub/Sub v1; HttpConnectProxiedSocketAddress dolazi iz io.grpc, a InetSocketAddress iz java.net. Primjer pretpostavlja uobičajeni internetski cilj koji koristi ovaj kanal.

Detektor vraća adresu proxy veze uz izvorni cilj. gRPC graditelj zahtijeva da adresa proxyja bude razriješena. Ostavite krajnju točku usluge kao Pub/Sub: zamjena imenom hosta proxyja izgubila bi cilj usluge i predviđeni TLS identitet.

Uklonite pozive korisničkog imena/lozinke za proxy bez autentifikacije; javni HTTP kandidati nalaze se na listi HTTP proxyja. Ti pozivi su interfejs za vjerodajnice HTTP CONNECT, a ne SOCKS ili opća NTLM implementacija.

Ako se neuspjeh dogodi prije gRPC operacije dok nezavisno kreirane vjerodajnice dobijaju token, pregledajte HTTP rutu tih vjerodajnica. Ona je izvan ovdje prikazanog dobavljača kanala.

Povezani članci