1

DrupalWebサイトと同じドメインでJavaアプリケーションをホストしています。このJavaアプリケーションは、ブラウザーからクライアント要求を取得します(したがって、すべてのCookieにアクセスできます)。Javaアプリケーションで取得したCookieを使用して、クライアントが同じブラウザーからDrupalにログインしているかどうかを確認することはできますか?

Javaアプリケーションからxmlrpcを使用してDrupalサービスモジュールへのリクエストを実行することを考えましたが、Cookieデータを提供する現在ログインしているユーザーに関する情報を取得する方法が見つかりませんでした。

何か案は?

どうもありがとう。

PS:新しくインストールしたDrupal 7を使用しています。Drupal6の例があれば、それでうまくいきます。ありがとう。

4

2 に答える 2

0

SESSION IDを取得できる場合は、セッションテーブルにアクセスして、同じsid(SESSION id = sid)を持つ行がテーブルにあるかどうかを確認できます。uidが0でない場合、ユーザーはログインしており、そこからユーザーを検索できます。

于 2011-02-10T15:39:37.997 に答える
0

私の答えは少し遅れていますが、XML-RPC機能にプラグインして作業を行うDrupal用のモジュールを作成することをお勧めします。

つまり、Javaアプリケーション(http://ws.apache.org/xmlrpc/client.html)からモジュールによって制御されるDrupalサイトのパス(たとえば'example.com)にXML-RPCリクエストを送信します。 / user / is-logged-in')。Drupalモジュールはそのパスを「制御」し、すべてのリクエストを受信します。そこから、Drupalモジュールがデータベースに対してクエリを実行して、セッションがログインしているユーザーに関連付けられているかどうかを確認するのは簡単な作業です(関連付けられているユーザーが0の場合、ユーザーはログインしていません-そうでない場合、ユーザーはログインしていますの)。Drupalモジュールは、単にtrueまたはfalseを返します(それが望ましい場合、またはユーザー詳細のより詳細な配列)。

私はすぐに同様のケースに取り組んでおり、おそらくその道をたどるでしょう。私の場合、ファイルのダウンロードを提供するDrupalサイトがあります。ダウンロードはJavaサーブレットを介して行う必要がありますが、ダウンロードを許可するのはログインしている人だけです。したがって、サーブレットはDrupalサイトに接続して、Cookieで提供されたセッションIDを持つユーザーがログインしているかどうかを確認し、ダウンロードを開始するかどうかを決定します。

言い換えると:

Java->XML-RPCリクエスト->Drupalサイト->XML-RPCレスポンス->Java。

于 2011-05-13T07:15:06.520 に答える