IPartnerCredentials appCredentials =
PartnerCredentials.getInstance()
.generateByApplicationCredentials(clientId, applicationSecret, aadApplicationDomain)
генерирует следующую трассировку стека:
2020-02-12 16:33:00,191 155022 ERROR [com.microsoft.aad.msal4j.ConfidentialClientApplication] (ForkJoinPool.commonPool-worker-1:) [Correlation ID: d1562f78-c8b2-4f14-9937-350080770ada] Execution of class com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier failed.
java.lang.ArrayIndexOutOfBoundsException: 0
at com.microsoft.aad.msal4j.Authority.getTenant(Authority.java:88)
at com.microsoft.aad.msal4j.AadInstanceDiscoveryProvider.sendInstanceDiscoveryRequest(AadInstanceDiscoveryProvider.java:110)
at com.microsoft.aad.msal4j.AadInstanceDiscoveryProvider.doInstanceDiscoveryAndCache(AadInstanceDiscoveryProvider.java:131)
at com.microsoft.aad.msal4j.AadInstanceDiscoveryProvider.getMetadataEntry(AadInstanceDiscoveryProvider.java:42)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.getAuthorityWithPrefNetworkHost(AuthenticationResultSupplier.java:32)
at com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier.execute(AcquireTokenByAuthorizationGrantSupplier.java:49)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:59)
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:17)
at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1590)
at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1582)
at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1056)
at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1692)
at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:157)
Вышеуказанная ошибка не имеет смысла. Тот же код, те же учетные данные работали в предыдущей версии 1.5.1, но внезапно не работали при переходе на последнюю сборку 1.5.3.
Что может быть изменением, которое вызвало это, и то, что может root причина, которая может быть отнесенным к ArrayIndexOutOfBoundsException.