【发布时间】:2020-06-22 21:42:35
【问题描述】:
我有一个 Java (Spring Boot) 应用程序(不是 Web 应用程序,只有后端应用程序),我正在尝试从中调用 Microsoft Graph API 以通过我的应用程序发送邮件。
代码运行一个 Cron 调度程序,在每天的固定时间发送邮件。我的应用没有可以要求用户手动登录的 UI。
Java 代码使用服务帐户进行身份验证。服务帐号是工作帐号,而不是个人帐号。
我正在使用MSAL4J 库,并且我已经在 Azure Active Directory 中设置了相关步骤,如其中所述。
我只有委托访问权限,没有应用程序访问权限。而且,我正在使用Username-Password Flow 使用服务帐户进行身份验证。
这是我正在使用的示例Code。
我可以在我的笔记本电脑上本地运行代码,该笔记本电脑位于组织“公司”网络 (VPN) 中。
现在,当我将应用程序部署到 AWS kubernetes 集群(在我的组织“corp”网络之外)时,我从 MSAL4J 库中收到此错误:
org.xml.sax.SAXParseException: The element type "br" must be terminated by the matching end-tag "</br>".
at java.xml/com.sun.org.apache.xerces.internal.parsers.DOMParser.parse(DOMParser.java:261) ~[na:na]
at java.xml/com.sun.org.apache.xerces.internal.jaxp.DocumentBuilderImpl.parse(DocumentBuilderImpl.java:339) ~[na:na]
at java.xml/javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:122) ~[na:na]
at com.microsoft.aad.msal4j.MexParser.getPolicy(MexParser.java:76) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.MexParser.getWsTrustEndpointFromMexResponse(MexParser.java:112) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.WSTrustRequest.execute(WSTrustRequest.java:62) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier.processPasswordGrant(AcquireTokenByAuthorizationGrantSupplier.java:76) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.AcquireTokenByAuthorizationGrantSupplier.execute(AcquireTokenByAuthorizationGrantSupplier.java:33) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:59) ~[msal4j-1.4.0.jar!/:1.4.0]
at com.microsoft.aad.msal4j.AuthenticationResultSupplier.get(AuthenticationResultSupplier.java:17) ~[msal4j-1.4.0.jar!/:1.4.0]
at java.base/java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1700) ~[na:na]
at java.base/java.lang.Thread.run(Thread.java:834) ~[na:na]
错误来自以下代码line:
result = pca.acquireToken(parameters).join();
MSAL4J 库没有任何调试日志,也无法确定导致此错误的原因。
有人可以帮忙找出问题所在吗?
【问题讨论】:
标签: java azure-ad-graph-api msal