Configurare il canale gRPC di Pub/Sub Java per HTTP CONNECT
Installate un ProxyDetector tramite il provider di canale GAX, mantenendo intatti l'indirizzo di destinazione e l'identità TLS di Pub/Sub.
Usate il provider di canale del client generato quando una connessione Pub/Sub Java gRPC richiede un proxy HTTP CONNECT. Un'impostazione URLConnection ordinaria non stabilisce questa configurazione di canale.
Per il client 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 e TopicAdminSettings sono classi Pub/Sub v1; HttpConnectProxiedSocketAddress proviene da io.grpc e InetSocketAddress da java.net. L'esempio presuppone la consueta destinazione di indirizzo internet usata da questo canale.
Il rilevatore restituisce un indirizzo di connessione proxy accanto alla destinazione originale. Il builder gRPC richiede che l'indirizzo del proxy sia risolto. Lasciate l'endpoint del servizio come Pub/Sub: sostituirlo con il nome host del proxy farebbe perdere la destinazione del servizio e l'identità TLS prevista.
Rimuovete le chiamate nome utente/password per un proxy non autenticato; i candidati HTTP pubblici si trovano nella lista dei proxy HTTP. Tali chiamate sono l'interfaccia delle credenziali HTTP CONNECT, non SOCKS né un'implementazione NTLM generica.
Se l'errore si verifica prima dell'operazione gRPC mentre una credenziale creata separatamente ottiene un token, ispezionate la rotta HTTP di quella credenziale. È al di fuori del provider di canale mostrato qui.