Контекстный ОТДЫХ. Как? - PullRequest
       5

Контекстный ОТДЫХ. Как?

0 голосов
/ 11 декабря 2011

Каковы способы реализации контекстного REST, напр. GET / ws / shoppingcart возвращает корзину покупок соответствующего пользователя (здесь контекст). Это только один из примеров. Нужно ли устанавливать SSL и использовать https: // вместо http: // для обслуживания каждого пользовательского запроса?

Отредактированный

Вся история: мне нужно разработать внутренние REST-сервисы, которые затем будут использоваться мобильными устройствами (нативными приложениями). Язык для бэк-энда - Java. Итак, есть много пользователей, поэтому я должен быть уверен, что знаю текущего пользователя, вошедшего в систему, чтобы можно было связать любой запрос с правильной идентификацией пользователя (аутентификация). Итак, я хотел бы знать, как правильно это реализовать? От начала до конца:

  • отправить имя пользователя / пароль для первоначального запроса
  • ассоциирует каждый следующий запрос с текущим пользователем
  • отклонить запрос на обслуживание, если нет текущего пользователя, поэтому анонимный вызов, т. Е. Для анонимных пользователей разрешены только публичные запросы
  • решение должно быть достаточно безопасным

Ответы [ 2 ]

0 голосов
/ 12 декабря 2011

Мы используем SSL и получаем идентификационные данные пользователя из сертификата.Однако вы можете использовать стандартное или настраиваемое поле заголовка.Одним из примеров было бы передать это в cookie через поле заголовка cookie.Другая возможность состоит в том, чтобы включить этот пользовательский контекст в вашу схему URI, хотя это будет намного сложнее, если вы не используете гипермедиа (HATEOAS) в своем «протоколе» (например, клиенты обращаются к сервису через хорошо известную точку входа, а затем переходят исключительно на основессылки, указанные в ответах)

Очевидно, что любой из них влияет на ваш "протокол" и должен быть надлежащим образом задокументирован, чтобы клиенты знали, что делать.

0 голосов
/ 11 декабря 2011

Способ, которым мы реализовали нечто подобное, заключается в том, чтобы все заголовки отправляли «запросы» в заголовке.Билет создается и возвращается методом initial / login.

Мы храним билет в базе данных и используем скользящий срок действия.

...