2017-12-22 20 views
0

私はPlayフレームワークとScalaでWebアプリケーションを構築しています。このアプリケーションは、多くのキースペースを持つCassandra dbに接続されています。私は別のユーザーを持っている、各ユーザーは別のユニットに属している(私たちはキースペースとして各ユニットを言うことができます)。私は小売業としてユーザー名を持っていると言うと、私は小売店舗に接続する小売店舗のユーザー名でログインし、小売用キースペースに属するテーブルからデータを取得します。製造キー空間に属するテーブル再生フレームワークでのセッション処理

小売りを使用してクロムからログインすると、小売キースペースのデータが表示され、製造元を使用してFirefoxを開いてログインすると、製造元のキースペースに接続し、そのキースペースのデータを取得します小売ユーザ名 でログインしているクロムに、何らかのアクションを実行して、小売りキースペースの代わりに製造キースペースからデータを取得します。アプリケーションはキースペースを切り替えました。それは常に の最新のログイン名で機能しています。これを克服するにはどうすればいいですか?

答えて

0

シングルトン(グローバル変数)を使用して、すべてのユーザーが共有する1つのキースペースまたは1つのユーザーあたり少なくとも1つのキースペースを保存しているような音がします。代わりに、に各ユーザーセッション独自のキースペースを与えることをお勧めします。

  • クッキー
  • 経由のJavaのWebトークン(JWT)
  • を介してユーザセッションのエントリを持つHas​​hMapのシングルトン、ビア:セッションごとにユーザーの鍵空間情報を保存し、復元する方法はいくつかあります。これにはソフトHashMapが必要なので、古いエントリは自動的にパージされます。 Google Guavaは良い実装をしています。

Play Framework documentationにはこのトピックに関する情報があります。

関連する問題