禁止使用SAP Cloud Foundry HTTP选项

时间:2018-06-12 11:54:54

标签: java spring-boot sap cloudfoundry sap-cloud-platform

我正在尝试将现有的Spring Boot应用程序发布到SAP Cloud Foundry环境。该应用程序是一个REST API,它在我们在docker容器中的专用Linux机器上运行良好。现在的挑战是在SAP Cloud Foundry环境中发布相同的应用程序。

起初似乎一切正常,但我尝试了对API的HTTP OPTIONS请求。在我们的专用计算机上,这会产生200 OK响应,但在SAP Cloud Foundry环境中,这会生成一个带有HTML正文的403 Forbidden响应。

我怀疑这个问题与Java / Spring Boot应用程序无关,因为它在我们的其他服务器上运行良好。我尝试通过以下步骤确保此声明是正确的:

  1. 我在Spring Boot的每个响应中添加了一个HTTP标头。我可以在我们的专用服务器的响应中以及作为OPTIONS请求的GET上看到此标头,在SAP CF上的GET请求中,但不在SAP CF上的OPTIONS请求中看到。
  2. 我在REST控制器中定义了一个特定的OPTIONS端点。这在我们的专用服务器上给出了预期的结果,但在SAP CF上没有,禁止的响应仍然存在。
  3. Forbidden响应的正文如下所示:

    <!DOCTYPE html>
    <html>
        <head>
            <title>null</title>
        </head>
        <body>
            <h1>Forbidden
            </body>
        </html>
    

    OPTIONS请求中的LOG条目如下所示:

    .cfapps.eu10.hana.ondemand.com - [2018-06-12T11:50:21.749+0000] "OPTIONS /test/options HTTP/1.1" 403 0 86 "-" "PostmanRuntime/7.1.1" "-" "x.x.x.x:61372" x_forwarded_for:"-" x_forwarded_proto:"https" vcap_request_id:"9f5a0501-43b8-4ddb-4581-65f506efdc21" response_time:0.316172755 app_id:"xxx" app_index:"0" x_b3_traceid:"7262b1b6a4d75c48" x_b3_spanid:"7262b1b6a4d75c48" x_b3_parentspanid:"-"
    

    这可能与SAP Cloud Foundry上的Tomcat有关,这是一种负载均衡机制,还是我的代码中只出现了一些错误?我怎么能毫无疑问地检查问题所在?

0 个答案:

没有答案