2016-05-07 16 views
0

著者の設定、実際にこのタイプを保存できるかどうかなど、Playアプリケーションのモデルのどこかで現在のユーザーにアクセスしたいと考えています。Scalaのモデルの現在のリクエスト/ユーザー詳細再生中! 2.5

理想的には、私はGuiceの@RequestScopedを使用して、私が必要としているときに私の要求に同じUserIdentityを注入したいと考えています。しかし、限り、私は言うことができる、プレイ!フレームワークは@Singletonをサポートし、スコープはありません。したがって、私たちが要求したすべてのモデル/ユーティリティに対して同じ要求を受け入れるか、別のものをUserIdentityに注入するかどちらかです。明らかな理由から、どちらもノーゴスです。

Play 2.5でこの動作を利用する方法はありますか?私は私がプレイのセッションとキャッシュの組み合わせを使用してみました

を試してみました

他のもの。しかし、私が持っている問題はセッションが不変なので、同じリクエストで再利用するために何も追加できないということです。

私は多くの認証フレームワークを見てきましたが、それらはすべて、現在のユーザーオブジェクトを私に提供せずに、アクションを確保することに焦点を当てているようです。

答えて

0

チェックアウトmy answer to a question on redirecting requestsここでは、各リクエストで現在のユーザーを取得する例を示しました。

この場合、ログイン時に認証キーが渡され、その後、クライアントはすべての要求に対してそれを渡します。

+0

私の問題は、あなたの答えが示唆していると思われるコントローラーではなく、ユーザーデータをモデルに入れたいということです。 –

+0

モデルにユーザーデータをパラメータとして渡さないのはなぜですか? – marcospereira

+0

@marcospereiraその問題は、依存性注入を使用する正確な理由です。すべてのレベルのメソッドは、実際にそれを使用したいメソッドに到達するまで、IDを渡す必要があります。また、コントローラでインスタンス化する必要があることを意味しますが、これは必ずしも行う必要はありません。理想的には、私はそれが必要なときに注入されたい。私はそれを暗黙的に渡すことになるかもしれませんが、それは理想的か慣用かとは思いません。 –

関連する問題