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. Primer pretpostavlja uobičajeni internetski cilj koji koristi ovaj kanal.

Detektor vraća adresu proxy veze uz izvorni cilj. gRPC graditelj zahteva da adresa proxyja bude razrešena. Ostavite krajnju tačku usluge kao Pub/Sub: zamena 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 verodostojnice HTTP CONNECT, a ne SOCKS ili opšta NTLM implementacija.

Ako se neuspeh dogodi pre gRPC operacije dok nezavisno kreirane verodostojnice dobijaju token, pregledajte HTTP rutu tih verodostojnica. Ona je izvan ovde prikazanog dobavljača kanala.

Povezani članci