Koristite pružatelja kanala generiranog 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 klase su 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 popisu HTTP proxyja. Ti su pozivi sučelje vjerodajnica HTTP CONNECT, a ne SOCKS ili opća NTLM implementacija.

Ako se neuspjeh dogodi prije gRPC operacije dok neovisno stvorene vjerodajnice dobivaju token, pregledajte HTTP put tih vjerodajnica. On je izvan ovdje prikazanog pružatelja kanala.

Povezani članci