Pub/Sub Java gRPC kanalo konfigūravimas HTTP CONNECT
Įdiekite ProxyDetector per GAX kanalo tiekėją, išsaugodami Pub/Sub tikslinį adresą ir TLS tapatybę.
Naudokite sugeneruoto kliento kanalo tiekėją, kai Pub/Sub Java gRPC ryšiui reikia HTTP CONNECT tarpinio serverio. Įprastas URLConnection nustatymas šios kanalo konfigūracijos nesukuria.
topic-admin klientui:
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 ir TopicAdminSettings yra Pub/Sub v1 klasės; HttpConnectProxiedSocketAddress kilęs iš io.grpc, o InetSocketAddress iš java.net. Pavyzdyje daroma prielaida, kad naudojamas įprastas šio kanalo interneto adreso tikslas.
Detektorius grąžina tarpinio serverio ryšio adresą kartu su pradiniu tikslu. gRPC kūrėjas reikalauja, kad tarpinio serverio adresas būtų išspręstas. Palikite paslaugos galinį tašką kaip Pub/Sub: pakeitus jį tarpinio serverio hosto vardu, būtų prarastas paslaugos tikslas ir numatyta TLS tapatybė.
Pašalinkite vartotojo vardo/slaptažodžio iškvietimus neautentifikuotam tarpiniam serveriui; viešų HTTP kandidatų rasite HTTP tarpinių serverių sąraše. Tie iškvietimai yra HTTP CONNECT prisijungimo duomenų sąsaja, o ne SOCKS ar bendra NTLM implementacija.
Jei gedimas įvyksta prieš gRPC operaciją, o atskirai sukurti prisijungimo duomenys gauna prieigos raktą, patikrinkite to prisijungimo duomenų HTTP maršrutą. Jis yra už čia parodyto kanalo tiekėjo ribų.