org.w3c.www.protocol.http.HttpException:连接重置

2020-08-22 17:36发布

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我对SAP世界来说还很陌生。 我需要您的帮助以了解我当前面临的问题。

我在SAP MII中添加了自定义操作,该操作将与身份验证系统连接并从OAuth获取令牌。 简单的Java可以按预期工作,但是当我添加与自定义操作相同的类时,出现连接重置错误。

日志:

  • 19:30:56.103 [INFO] [GetOauthToken_0]已完成对:XXXXXXXXXX的OAuth令牌
  • 19:30:56.170 [ERROR] [GetOauthToken_0]执行OAuth时发生异常:org.w3c.www.protocol.http.HttpException:连接重置

代码:

HttpURLConnection conn =(HttpURLConnection)url.openConnection(); conn.setDoOutput(true); 字符串authStr = sClientId +":" + sSecret; instance.log( LogLevel.INFO ," OAuth令牌客户端ID:" + sClientId); 字符串encodingAuth = DatatypeConverter.printBase64Binary(authStr.getBytes(" UTF-8")); conn.setRequestMethod(" POST"); conn.setRequestProperty(" Authorization"," Basic" + encodingAuth); conn.setRequestProperty(" Content-Length",Integer.toString(postDataLength)); conn.getOutputStream()。write(postData); instance.log( LogLevel.INFO ,"已完成以下操作的OAuth令牌:" + sClientId); 中的Reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); for(int c;(c = in.read())> = 0;){sb.append((char)c); }

任何输入均受到高度赞赏。

         点击此处--->   EasySAP.com群内免费提供SAP练习系统(在群公告中)

加入QQ群:457200227(SAP S4 HANA技术交流) 群内免费提供SAP练习系统(在群公告中)


嗨,

我对SAP世界来说还很陌生。 我需要您的帮助以了解我当前面临的问题。

我在SAP MII中添加了自定义操作,该操作将与身份验证系统连接并从OAuth获取令牌。 简单的Java可以按预期工作,但是当我添加与自定义操作相同的类时,出现连接重置错误。

日志:

  • 19:30:56.103 [INFO] [GetOauthToken_0]已完成对:XXXXXXXXXX的OAuth令牌
  • 19:30:56.170 [ERROR] [GetOauthToken_0]执行OAuth时发生异常:org.w3c.www.protocol.http.HttpException:连接重置

代码:

HttpURLConnection conn =(HttpURLConnection)url.openConnection(); conn.setDoOutput(true); 字符串authStr = sClientId +":" + sSecret; instance.log( LogLevel.INFO ," OAuth令牌客户端ID:" + sClientId); 字符串encodingAuth = DatatypeConverter.printBase64Binary(authStr.getBytes(" UTF-8")); conn.setRequestMethod(" POST"); conn.setRequestProperty(" Authorization"," Basic" + encodingAuth); conn.setRequestProperty(" Content-Length",Integer.toString(postDataLength)); conn.getOutputStream()。write(postData); instance.log( LogLevel.INFO ,"已完成以下操作的OAuth令牌:" + sClientId); 中的Reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); for(int c;(c = in.read())> = 0;){sb.append((char)c); }

任何输入均受到高度赞赏。

付费偷看设置
发送
9条回答
小灯塔
1楼-- · 2020-08-22 17:57

嗨,

感谢您的建议。

实际上,我需要连接SAP MII中的一个应用程序用户,而不是登录身份验证。 在这里,当我在SAP MII 15.0上进行一些搜索时,我也不能使用servlet,我发现它使用Java 6和Java 6仅支持TLS 1.0,而okta将不支持。 哪些最终成为障碍?

-谢谢

半个程序猿
2楼-- · 2020-08-22 17:45

从您对问题的评论中,我能理解的是,您需要从第3 rd 方获得令牌 系统,因此您不必管理凭据。 (OAUTH功能)。

为什么不先进行身份验证然后执行逻辑?

您可以使用Java在SAP MII Web应用程序中开发相同的应用程序以验证用户身份,然后可以执行事务逻辑。

关于示例代码,我现在没有任何东西,您需要自己尝试。

致谢,
Ankit Gupta

闻人可可
3楼-- · 2020-08-22 17:59

Chris,

我们在应用程序中使用了多个API,并且无法向登录系统的用户授予权限。 因此,将权限授予一个能够调用后端API的应用程序。 这样,我们可以减少维护用户权限与应用程序API权限之间的关系。

因此我们的应用程序用户曾经与Siteminder连接,但是现在,我们正从SiteMinder迁移到OKTA。

因此,SAP MII 15.0不支持TLS 2或更高版本(不高于TLS 1.5),我们正在移动此代理服务来处理这种情况,并使用SAP HTTP POST阻止操作,可以在MII中进行此代理调用,并达到类似的要求。

一周热门 更多>