【发布时间】:2016-08-03 06:06:46
【问题描述】:
我正在尝试通过遵循azure tutorial 来开发带有 SSO 的 Java Web 应用程序。我在 Azure 中创建了一个帐户并创建了一个 AD。在Tomcat中开发和部署代码。当我尝试访问该页面时,我收到以下错误
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。即便如此,它也没有奏效。
更多分析:
经过故障排除,我发现登录的用户信息被提取并在 Sessions 对象中可用。它在尝试读取响应并转换为 String 对象时出错。以下是出错的调用方法。
HttpClientHelper.getResponseStringFromConn(conn, true);
将响应写入String的实际方法:
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,我转移到其他项目,因为它的优先级较低。要回答你的问题,不。我会在有机会的时候解决这个问题。你有解决方案吗?
-
在我的情况下授予 directory.readAll 和 group.readAll 权限有效。
标签: java azure azure-active-directory