APIGEE – проблема с файлами cookie

Поддержка файлов cookie - проблема?

Первоначальный выпуск/предыстория:

У нас есть API на основе сервлета / JSON, работающего в Openshift, веб-сервер, используемый в openshift, — Tomcat.

Мы храним информацию в httpssession и все отлично работает при использовании напрямую против openshift/tomcat (POST/GET). Но когда мы настроили apigee против существующих методов, сессия теряется. Вещи правильно хранятся в сеансе на стороне сервера, но когда второй запрос поступает от apigee в tomcat, сеанс «теряется»

Кусок java-кода для получения сеанса — это простой httpssession.getRequest(). Как сказано, это отлично работает при непосредственном использовании бэкэнда. Есть ли какие-то дополнительные шаги (файлы cookie и т. д.), необходимые для поддержания сеанса, когда запросы используются через Apigee?

Обновить результаты;

При коротком отладочном мониторинге трафика подтверждается причина ошибки в apigee в том, что он не передает JSessionId запросам. Это означает, что поддержка файлов cookie должна быть каким-то образом включена в настройках прокси-сервера API/Конфигурации.

У кого-нибудь есть идея, где или если это можно решить?


person user3368685    schedule 01.03.2014    source источник


Ответы (3)


Во-первых, файлы cookie не являются частью правильной полезной нагрузки RESTful — если вы захватили заголовки, вы могли бы сохранить их с помощью access_token как часть политик генерации токенов.

Кроме того, вы должны иметь возможность передавать файлы cookie обратно запрашивающему приложению, а затем позволить приложению передавать их обратно в API — мой API Jokeindex позволяет вам это сделать.

Убедитесь, что в потоке нет политик AssignMessage, которые случайно удаляют заголовки — что-то вроде этого:

<Set>
  <Headers />
</Set>

так как это удалит ВСЕ заголовки. Кроме того, вы можете взглянуть на инструмент Trace в Apigee, чтобы проверить каждый шаг политики на этом пути, чтобы увидеть, удаляете ли вы заголовок Cookie: из запрашиваемой полезной нагрузки.

person Michael Bissell    schedule 01.03.2014

Когда у вас есть ресурс по адресу "http://yourdomain.com/somewhere/", и вы перенаправляете на этот ресурс из API APIGEE, например, по URL-адресу: http://yourapi.apigee.net/v0/myresource" то, что вы возвращаете с вашего сервера, является файлом cookie для /somewhere/, а не v0/resource/somewhere, поэтому в основном, когда браузер возвращает файл cookie, он не помещает его в правильное место и отбрасывает его. По крайней мере, это было/есть мое дело.

person Kaszaq    schedule 13.03.2014

Вы должны связаться с @bissell по этому поводу, но я нашел эту статью, которая может оказаться полезной: http://community.apigee.com/groups/learn-create-and-manage-apis/some-basic-questions-new

Кроме того, вы можете исправить свою проблему, добавив политику «извлечь переменную» в запрос, который захватывает JSessionId, а затем добавив политику «назначить сообщение», чтобы добавить ее обратно в запрос.

Вы можете назначать политики из API Platform>Dashboard>API Proxies>YOUR API>Develop.

person Michael Droz    schedule 01.03.2014