我正试图通过遵循此azure tutorial来开发具有SSO的Java Web应用程序。我在Azure中创建了一个帐户并创建了一个AD。在Tomcat中开发和部署代码。当我尝试访问该页面时,出现以下错误SSO中的图形API在Azure AD中不起作用
Exception - java.io.IOException: Server returned HTTP response code: 403 for URL: https://graph.windows.net/ppceses.onmicrosoft.com/users?api-version=2013-04-05
我没有找到足够的此错误答案。我将api版本更改为1.6。即使这样也行不通。
更多的分析:
故障排除之后,我发现登录的用户信息被提取,并提供在会话对象。它尝试读取响应并将其转换为String对象时出错。以下是调用方法出错的地方。
HttpClientHelper.getResponseStringFromConn(conn, true);
实际的方法来写响应转换成字符串:
public static String getResponseStringFromConn(HttpURLConnection conn, boolean isSuccess) throws IOException {
BufferedReader reader = null;
if (isSuccess) {
reader = new BufferedReader(new InputStreamReader(conn.getInputStream()));
} else {
reader = new BufferedReader(new InputStreamReader(conn.getErrorStream()));
}
StringBuffer stringBuffer = new StringBuffer();
String line = "";
while ((line = reader.readLine()) != null) {
stringBuffer.append(line);
}
return stringBuffer.toString();
}
实际的问题是在图形API,我们试图读取该字符串格式的响应。
你解决了这个问题吗? – Paul
@Paul,因为它的优先级低,我转移到其他项目上。要回答你的问题,不,我会在有机会的时候处理这件事。你有解决方案吗? – Anand