簡體   English   中英

從Java應用程序訪問當前登錄的Drupal用戶

[英]Accessing currently logged-in Drupal user from Java application

我將Java應用程序托管在與Drupal網站相同的域中。 該Java應用程序從瀏覽器獲取客戶端請求(因此我可以訪問所有cookie)。 是否可以使用我在Java應用程序中獲得的cookie來檢查客戶端是否從同一瀏覽器登錄到Drupal?

我曾考慮過使用Java應用程序中的xmlrpc來執行對Drupal服務模塊的請求,但是我無法找到一種方法來獲取有關當前登錄用戶的Cookie信息。

有任何想法嗎?

非常感謝。

PS:我使用的是新安裝的Drupal7。如果您有Drupal 6示例,它將完成此工作。 謝謝。

好吧,如果您可以獲取SESSION ID,則可以訪問會話表,並查看表中是否有任何具有相同sid的行(SESSION id = sid)。 如果uid不為0,則用戶已登錄,然后您可以從那里查找他們的身份。

我的回答有點晚了,但是我建議為Drupal編寫一個模塊,該模塊插入其XML-RPC功能並為您完成工作。

換句話說,您將從您的Java應用程序(http://ws.apache.org/xmlrpc/client.html)向該模塊控制的Drupal網站上的路徑發出XML-RPC請求(例如'example.com / user / is-logged-in')。 Drupal模塊將“控制”該路徑,並接收所有請求。 從那里開始,Drupal模塊的一項簡單工作就是對數據庫進行查詢,以查找會話是否與已登錄用戶相關聯(如果關聯用戶為0,則該用戶未登錄-否則該用戶已登錄)在)。 然后,Drupal模塊將簡單地返回true或false(如果需要的話,或者返回更詳細的用戶詳細信息數組)。

我將很快處理類似的案例,並且可能會走這條路。 就我而言,我有一個提供文件下載功能的Drupal網站。 下載需要通過Java Servlet完成,但是只有登錄的人才能被允許下載。 因此,該servlet將聯系Drupal站點,以檢查具有cookie中提供的會話ID的用戶是否已登錄,然后確定是否應該開始下載。

換一種說法:

Java-> XML-RPC請求-> Drupal站點-> XML-RPC響應-> Java。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM