【问题标题】:OData service authentication with SAP Gateway service OpenUI5使用 SAP 网关服务 OpenUI5 进行 OData 服务身份验证
【发布时间】:2016-08-09 09:28:22
【问题描述】:

我有一个服务网址如下

http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV$metadata

当我从 Chrome 浏览器调用它时,如果我提供用户名和密码,我会询问用户名和密码,它将显示包含该服务 URL 中所有实体集的 XML

但如果我创建实例在代码中

var model = new sap.ui.model.odata.v2.ODataModel("http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV/",true,'username','password');

它显示 401 错误

我该如何解决这个问题?

我的应用没有部署在 ABAP repo 或 Fiori 中,这是部署在 Tomcat 上的其他主机中

【问题讨论】:

  • 您需要一个可以从 SAP 门户上的 SAP 服务获取的令牌 - 我认为可以启用一项服务,您可以提供用户名和密码。然后我会尝试将其作为标题的一部分传递。不记得细节,但如果你仍然卡住,我愿意挖掘。
  • 是的,我没有解决方案。请你帮帮我
  • 向您的基础人员询问 ping 服务的 URL - 应按以下顺序:http://********:8000/sap/bc/ping?sap-客户=
  • 是的得到了这个服务..这是询问用户名和密码,作为响应只是服务器到达..但不是令牌:(

标签: odata sapui5 netweaver


【解决方案1】:

我们可以通过两种方式解决这个问题

1:我们可以使用SimpleProxyServlet

2 与 Apache HTTP Server 建立Reverse Proxy

【讨论】:

    【解决方案2】:

    我不确定参数的正确顺序;您可以尝试将它们作为地图提供,即

    var model = new sap.ui.model.odata.v2.ODataModel("http://<hostName>:2020/sap/opu/odata/sap/ZTEST_SRV/", { 
        json     : true,
        user     : "<username>",
        password : "<password>"
    });
    

    另外,比较两个请求(有效的基本身份验证以及来自 ODataModel 实例化代码的请求)

    您的服务是否支持 OData V2?

    【讨论】:

    • 预检响应包含无效的 HTTP 状态代码 401
    • 我也试过 sap.ui.model.odata.ODataModel
    • “预检”表明它可能是某种 CORS 问题;您的服务必须允许相同访问的原始标头,请参阅html5rocks.com/en/tutorials/cors/…,或者您可以尝试从调用服务重置标头(这有效地覆盖了 OPTIONS 请求)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-03-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多