Запрещено использовать опции HTTP Cloud Foundry для HTTP.
Я пытаюсь опубликовать существующее приложение Spring Boot в среде SAP Cloud Foundry. Приложение представляет собой REST API, который отлично работает на наших выделенных машинах Linux в док-контейнерах. Теперь задача состоит в том, чтобы опубликовать это же приложение в среде SAP Cloud Foundry.
Сначала казалось, что все работает как надо, пока я не попробовал запрос HTTP OPTIONS к API. На наших выделенных компьютерах это дает ответ 200 OK, а в среде SAP Cloud Foundry - 403 Запрещенный ответ с телом HTML.
Я подозреваю, что эта проблема не имеет ничего общего с приложением Java/Spring Boot, потому что оно отлично работает на других наших серверах. Я попытался убедиться в правильности этого утверждения, выполнив следующие действия:
- Я добавил заголовок HTTP на каждый ответ в Spring Boot. Я вижу этот заголовок в ответе от наших выделенных серверов, а также на запросе GET в качестве OPTIONS, запросе GET в SAP CF, но не в запросе OPTIONS в SAP CF.
- Я определил конкретную конечную точку OPTIONS в контроллере REST. Это дает ожидаемый результат на наших выделенных серверах, но не на SAP CF, запрещенный ответ по-прежнему сохраняется.
Тело Запрещенного ответа выглядит так:
<!DOCTYPE html>
<html>
<head>
<title>null</title>
</head>
<body>
<h1>Forbidden
</body>
</html>
Запись LOG в запросе OPTIONS выглядит следующим образом:
.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:"-"
Может ли это быть как-то связано с Tomcat в SAP Cloud Foundry, механизмом балансировки нагрузки, или я просто допустил ошибку в своем коде? Как я могу без сомнения проверить, в чем проблема?