Impostazioni proxy di Microsoft Graph Java 6 per client API e token
Usare la route Netty di Azure Identity e la route OkHttp di Graph che preserva il middleware durante l'inizializzazione.
var address = new java.net.InetSocketAddress("proxy.example", 8080);
var tokenProxy = new com.azure.core.http.ProxyOptions(
com.azure.core.http.ProxyOptions.Type.HTTP, address);
var tokenHttp = new com.azure.core.http.netty.NettyAsyncHttpClientBuilder()
.proxy(tokenProxy).build();
var credential = new com.azure.identity.ClientSecretCredentialBuilder()
.tenantId(tenantId).clientId(clientId).clientSecret(clientSecret)
.httpClient(tokenHttp).build();
String[] scopes = {"https://graph.microsoft.com/.default"};
String[] allowedHosts = {"graph.microsoft.com"};
var auth = new com.microsoft.kiota.authentication.AzureIdentityAuthenticationProvider(
credential, allowedHosts, scopes);
var graphHttp = com.microsoft.graph.core.requests.GraphClientFactory.create()
.proxy(new java.net.Proxy(java.net.Proxy.Type.HTTP, address))
.build();
var graph = new com.microsoft.graph.serviceclient.GraphServiceClient(auth, graphHttp);Usare le credenziali tenant/client esistenti. Dove sono consentiti intermediari pubblici sia per l'endpoint del token sia per quello di Graph, l'elenco di proxy HTTP fornisce candidati per l'indirizzo HTTP condiviso senza account. Gli ambiti del cloud pubblico e l'host consentito mostrati devono corrispondere alla distribuzione cloud prevista.
httpClient(tokenHttp) fornisce la route del token di Azure Identity. GraphClientFactory.create() mantiene il middleware predefinito di Graph aggiungendo il proxy dell'API; usare il client finale graph per le operazioni.
Un intermediario autenticato richiede la configurazione dell'account su entrambi i percorsi: Azure ProxyOptions.setCredentials e OkHttp proxyAuthenticator servono i rispettivi trasporti. Un token memorizzato nella cache può nascondere un percorso del token non configurato.
Conservare e ripulire i trasporti di proprietà insieme al componente. I builder TokenCredentialAuthProvider più vecchi sono destinati a un'altra generazione dell'SDK.