Я создаю веб-приложение, которое использует систему управления контентом Drupal 7. Веб-страницы интенсивно используют JQuery и AJAX.
AJAX-вызовы обращаются к сервисам REST, которые фактически реализуются с использованием JAVA. Apache работает под управлением Drupal 7 и настроен на передачу любых вызовов по URL-адресам REST на сервер Java EE (Jboss AS7). Все по SSL.
Мне нужно авторизовать и аутентифицировать вызовы служб REST и получить доступ к имени пользователя или идентификатору человека, который в данный момент вошел в Drupal, из приложения Java. Вопрос в том ... как ...
Поскольку вызовы AJAX выполняются на одном и том же сервере Apache (а не на отдельном сервере и т. Д.), Все происходит в одном сеансе http, поэтому я надеюсь, что это будет довольно просто.
Вещи, о которых я думал:
- Настройка перехватчика безопасности Java, который вызывает пользовательский (локально
только доступ) Сервис Drupal, который как-то читает идентификатор сессии и
возвращает имя вошедшего в систему пользователя
- создать "тупую" службу REST drupal, которая будет действовать в качестве шлюза для всех моих вызовов REST, которая авторизует / аутентифицирует, а затем вводит имя пользователя перед передачей в бэкэнд-сервис Java *
- Статья в https://lists.wisc.edu/read/messages?id=7777296#7777296 заставила меня задуматься, могу ли я обойтись без вызова службы Drupal (только в начале каждого сеанса службы Java), которая принимает идентификатор сессии Drupal и возвращает текущего пользователя и его роли , Я мог бы настроить его в своем Java-сервисе, чтобы он повторял этот вызов каждые x секунд или y вызовов для проверки изменений ролей или выхода из системы.
Как все это делают? Это должно быть общей проблемой, не так ли? Если нет, что вы делаете вместо этого для безопасного доступа к аутентифицированным сервисам через AJAX? Я бы предпочел не вводить второй процесс управления пользователями в дополнение к Drupal, если это неизбежно. СУХОЙ:)
Спасибо - это поставило меня в тупик!