我正在实施SAP Cloud Platform Java应用程序,以使用OAuth2身份验证连接到Office 365 API(https://outlook.office.com/)。 当我在Apache Tomcat本地服务器上运行它时,我正确地从服务器获得响应。 当我在SAP Cloud Platform上运行相同的代码时,我得到javax.net.ssl.SSLPeerUnverifiedException:peer not authenticated | 在这两种情况下,我都会获得正确的OAuth令牌。 我在这里错过了什么? 我正在使用的代码是:
private Object getResponseFromAzure(String url, String methodType) {
AuthenticationResult result = null;
try {
result = getAccessTokenFromUserCredentials(); // OAuth2 bearer token
} catch (Exception e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
String accessToken = result.getAccessToken();
System.out.println("Access Token is - " + accessToken);
HttpClient client = new DefaultHttpClient();
HttpRequestBase request = null;
if ("GET".equals(methodType)) {
request = new HttpGet(url);
} else if ("POST".equals(methodType)) {
request = new HttpPost(url);
}
request.addHeader("Authorization", "Bearer " + accessToken);
HttpResponse response = null;
try {
response = client.execute(request);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案 0 :(得分:0)
在SCP中创建目的地。在目标服务中上载根证书和中间证书。这是用户界面的一部分。
使用目标而不是直接连接从您的Java应用程序进行连接。示例代码位于https://help.sap.com/viewer/cca91383641e40ffbe03bdc78f00f681/Cloud/en-US/e592cf6cbb57101495d3c28507d20f1b.html