2012-01-06 11 views
1

この要件がありますが、クラスタ環境でJavaベースのRESTful Webサービスを実装する必要があります。私の問題は、ここでユーザーセッションをどのように管理するのかです。ユーザーがログインすると、利用可能なすべてのアクションを問題なく実行できるはずです。また、ユーザーはショッピングカートを保持できる必要があります。このための最良のアプローチは何ですか?これを行うためのコードサンプルはどれですか?注目すべき主な要因は、クラスタ環境でのJavaベースREST Webアプリケーションのセッション管理

  1. クラスタ環境でのRESTful Webアプリケーションです。
  2. 複数のクライアントがこのアプリケーションで使用されます。 (例:アンドロイド、アップル、Web..etc)
  3. ユーザーがショッピングカートを維持することができるはずJBossの6.0.0で
  4. ラン

答えて

1

RESTfulな(いけないが、これはRESTfulな概念に違反するかどうかを知っています)アプリケーションはセッションを使用しないため、クラスタ環境では問題は発生しません。 RESTfulアプリケーションは、すべての要求に対して認証資格情報を送信します。

+0

Darrelありがとうございます。リクエストごとにユーザーを検証するために追加のDB呼び出しを行う必要がありますか?またはセッションキーを生成してマップに保存する必要があります。 dbを呼び出さずにユーザーに送信するか? – bluelabel

+0

@bluelabel標準の認証メカニズムがすべての要求に対して実行するのに十分な速さでない場合、クライアントに、将来の認証要求を送信するためのトークンを提供することができます。トークンに暗号化されたユーザー情報があるかどうか、または期限切れかどうかなどは、システムの安全性と速さのすべての要素です。 –

+0

Darrelありがとう、このトークン認証についてもう少し説明してもらえますか?これまでのところ、ユーザーが正常にログインすると、手動でトークンを作成し、それを応答と共に送信します。このトークンをラップしておきます。どうすればこのトークンを使って検証できますか?私は本当に、ユーザーの検証のためにそれぞれのリクエストに対してDB呼び出しをしたくありません。これまでのやり方でこれを手伝ってもらえますか? – bluelabel

1

RESTfulウェブサービスにショッピングカートを置いても問題ありません。いくつかの典型的なアプリケーションのように、ショッピングカートがセッションに格納されないことだけです。このケースでは、ショッピングカートのリソースをお勧めします:

/app/rest-api/shopping-carts/204314

すべてのデバイスは、このリソースにアクセスし、同じデータを見ることができました。 Webサーバーはステートレスなので(ショッピングカートはデータベースに格納されます)、クラスタリングは問題になりません。私はJBossがこれを行う特定の問題を知らない。 JBossはサーブレットの仕様からすべての機能を実装しているので、私は誰も推測できません(または少なくともここで必要なものを容易にするのに十分です)。

ユーザーを認証してカートに関連付けるという点ではたとえば、あなたはOAuthプロバイダへのアクセス権を持っていますか?あるいは、OpenIDルートを検討していますか?ユーザ認証情報はアプリケーションのどこかに既に保存されていますか?

+0

ショッピングカートのデータをクライアントが管理することもできます。 –

+0

Nathanさん、ありがとうございました。このアプリは、このアプリ用に作成した独自のアカウントを使用するか、facebookアカウントを使用してログインするようにユーザーに指示する必要があります。 facebookが選択されている場合、私のJavaサーバーを通して認証が行われるべきです。私が理解していないのは、ユーザーがそれらのいずれかを使用した場合、クラスター化された環境でログインする以外の各要求に対して、彼をどのように検証するのですか? Darrelが示唆したように、私は各要求に対してユーザーを認証すべきですか?私はこれのために持っているオプションは何ですか? – bluelabel

+0

@ダレルミラー - はい、ショッピングカートはクライアントによって管理されます。各ユーザーのすべてのデバイスに同じショッピングカートを表示させたい場合や、ショッピングカートの内容が重要である場合(購入していないショッピングカートに入ったアイテムは何か)、ショッピングカートを維持することはできません。 )。明らかにこれがどのように設計されているかにはトレードオフがあります。 – Nathan

関連する問題