私はDrupal 7コンテンツ管理システムを使用するWebアプリケーションを作成しています。 WebページはJQueryとAJAXを大量に使用しています。Drupalを使用してJava RESTサービスを保護するにはどうすればよいですか?
AJAXは実際にJAVAを使用して実装されたRESTサービスを呼び出します。 ApacheはDrupal 7を実行しており、REST URLへの呼び出しをJava EEサーバー(Jboss AS7)に渡すように構成されています。すべてがSSL経由です。
RESTサービスへの呼び出しを認証して認証し、JavaアプリケーションからDrupalに現在ログインしているユーザーのユーザー名またはIDにアクセスする必要があります。問題は...どういうわけか...
AJAX呼び出しは(別のサーバーなどではなく)同じApacheサーバーに行われるため、すべて同じhttpセッション内で行われるため、これが可能です非常に簡単です。私は思った-できた
もの:
- 設定カスタムを呼び出すJavaのセキュリティインターセプター(ローカル のみアクセス)何とかセッションIDを読み取り、 リターンがログインしているユーザ名 drupalのサービス
- Javaバックエンドサービスにパススルー前にユーザー名を許可/認証して、すべてのREST呼び出しのゲートウェイとして機能する「ダム」ドリューアップRESTサービスを作成します。
- https://lists.wisc.edu/read/messages?id=7777296#7777296の記事は私は離れて知恵を得ることができるDrupalのsessionIDを受け取り、現在のユーザーとその役割を返すDrupalサービス(各Javaサービスセッションの開始時)を呼び出します。私はJavaサービスでそれを設定して、x秒ごとにこの呼び出しを再実行したり、yの呼び出しで役割の変更やログアウトをチェックしたりすることができました。
どのように他の人はそれをしますか?これは解決する共通の問題でなければならないのですか?そうでない場合は、AJAX経由で認証されたサービスに安全にアクセスするために代わりに何をしますか?私はむしろ避けられない限り、Drupalに加えて第2のユーザ制御プロセスを導入したくない。 DRY :)
ありがとうございます - これは私を困惑させる!
これは意味があります。余分なトークンの必要性を排除するために、ヘッダまたはクッキーに格納されたセッション変数を一意のトークンとして使用することは可能でしょうか? – user1180316