Доступ к зарегистрированному в данный момент пользователю Drupal из приложения Java
У меня Java-приложение размещено в том же домене, что и веб-сайт Drupal. Это Java-приложение получает запрос клиента из браузера (поэтому я получаю доступ ко всем файлам cookie). Можно ли с помощью файлов cookie, которые я получаю в приложении Java, проверить, вошел ли клиент в Drupal из того же браузера?
Я думал об использовании xmlrpc из Java-приложения для выполнения запроса к сервисному модулю Drupal, но не смог найти способ получить информацию о том, что в данный момент вошел в систему пользователь, предоставляющий данные cookie.
Есть идеи?
Большое спасибо.
PS: я использую только что установленный Drupal 7. Если у вас есть пример Drupal 6, он сделает свою работу. Благодарю.
2 ответа
Что ж, если вы можете получить идентификатор SESSION, вы можете нажать на таблицу сессий и посмотреть, есть ли в таблице какая-либо строка с таким же sid (SESSION id = sid). Если uid не равен 0, пользователь вошел в систему, и вы можете посмотреть, кто он там.
Немного опоздал с ответом, но я бы порекомендовал написать модуль для Drupal, который подключается к его возможностям XML-RPC и выполняет всю работу за вас.
Другими словами, вы бы отправили запрос XML-RPC из вашего Java-приложения (http://ws.apache.org/xmlrpc/client.html) на путь на вашем сайте Drupal, контролируемый модулем (скажем, "example.com"). / пользователь / в-вошедшего в). Модуль Drupal будет "контролировать" этот путь и получать все запросы. Оттуда модуль Drupal просто выполняет запрос к базе данных, чтобы выяснить, связан ли сеанс с вошедшим в систему пользователем (если связанный пользователь равен 0, то пользователь не вошел в систему - в противном случае пользователь вошел в систему). в). Затем модуль Drupal просто возвращает true или false (если это желательно, или более подробный массив пользовательских данных).
Я скоро поработаю над подобным делом и, вероятно, пойду по этому пути. В моем случае, у меня есть сайт Drupal, который предлагает загрузку файлов. Загрузка должна осуществляться через Java-сервлет, но только те пользователи, которые вошли в систему, должны иметь разрешение на загрузку. Таким образом, сервлет свяжется с сайтом Drupal, чтобы проверить, вошел ли пользователь с идентификатором сеанса, указанным в файле cookie, и затем определит, должна ли начаться загрузка.
Другими словами:
Java -> запрос XML-RPC -> Сайт Drupal -> ответ XML-RPC -> Java.