问题描述
我们正在使用1.4.0 msal4j版本,现在我们已将其升级到最新版本1.6.2。但是现在我们在获取代币时遇到了这个异常。在我们的环境中配置了代理。
com.microsoft.aad.msal4j.MsalClientException: java.net.SocketTimeoutException: Read timed outcom.microsoft.aad.msal4j.MsalClientException: java.net.SocketTimeoutException: Read timed out
at com.microsoft.aad.msal4j.HttpHelper.executeHttpRequest(HttpHelper.java:68)
at com.microsoft.aad.msal4j.OAuthHttpRequest.send(OAuthHttpRequest.java:34)
at com.microsoft.aad.msal4j.TokenRequestExecutor.executeTokenRequest(TokenRequestExecutor.java:37)
at com.microsoft.aad.msal4j.AbstractClientApplicationBase.acquireTokenCommon(AbstractClientApplicationBase.java:117)
at com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier.execute(AcquireTokenByAuthorizationGrantSupplier.java:63)
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:1604)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
at java.lang.Thread.run(Thread.java:748)
Caused by: java.net.SocketTimeoutException: Read timed out
at java.net.SocketInputStream.socketRead0(Native Method)
at java.net.SocketInputStream.socketRead(SocketInputStream.java:116)
at java.net.SocketInputStream.read(SocketInputStream.java:171)
我们正在使用“客户端凭据”流来获取令牌。与-https://github.com/Azure-Samples/ms-identity-java-daemon/tree/master/msal-client-credential-secret完全相同。
我们所做的其他事情是在代理服务器的网址下方列入白名单。我们正在使用Squid代理。
.login.microsoftonline.com,.dataservice.protection.outlook.com,.api.aadrm.com
这是必需的,因为MIPSDK不支持经过身份验证的代理。我们正在使用msal4j获取令牌,并使用MIPSDK从Azure信息保护中获取标签。如果将这些网址从代理名单中删除,则一切正常。
msal4j的较新版本有哪些变化会影响这种情况?
当我们使用1.4.0版本时,它可以正常工作,但是升级到1.6.2之后,事情就坏了。
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)