2013-05-18 5 views
6

SecureSocial 2.0.7を使用していましたが、UserServicePluginを実装してユーザーがログインできるようになりました。サーバーを停止して再起動したり、 )、ユーザはログインしたままになります。SecureSocial 2.0.12にアップグレードされ、セッションが永続化されていない

2.0.12にアップグレードしたので、ログインセッションはサーバの再起動後も永続的ではありません。

デバッグログをすべてのメソッドにUserServicePluginに追加しました。ログイン時にユーザーはsavedになります。しかし、時にサーバーが再起動し、以前にログインしているように、ユーザーIがページにアクセスしようと、私はログに次を参照してください。

[info] play - database [default] connected at jdbc:postgresql://localhost/xxxxxx 
[info] application - [securesocial] loaded templates plugin: sec.SecureSocialViews 
[info] play - Starting application default Akka system. 
[info] application - [securesocial] loaded user service: class sec.LoginUserService 
[info] application - [securesocial] loaded password hasher bcrypt 
[info] application - [securesocial] loaded identity provider: userpass 
[info] play - Application started (Dev) 
[debug] application - [securesocial] calling deleteExpiredTokens() 
[debug] application - deleteExpiredTokens 
[debug] application - [securesocial] anonymous user trying to access : '/supplier/requests' 

任意のアイデア?何らかの理由で、ログインクッキーが既に存在するログインセッションをチェックするまでに、クッキーが盗まれてしまうのではないかと思います...

私はユーザー名/パスワード認証を使用しています。

+0

SecureSocialがプレイキャッシュに物を格納することは何かできますか? (私はちょうどデフォルトのメモリ内の再生キャッシュを使用しています) – andrewf

+2

私はこれもPlay 2.1とMasterブランチSecuresocialで見つけています。私はDBにバックアップされたユーザーサービスを持っており、ディスクに永続化するようにehcacheを構成しました。ただし、サーバーを再起動すると、すべてのユーザーがログアウトします。挫折。 –

答えて

4

ユーザー情報がセッションに格納される方法に変更がありました。 PlayセッションCookieを使用する代わりに、モジュールは別のセッションCookieを使用するようになりました。このCookieには認証者IDがあります。ユーザー情報は、サーバー側のAuthenticatorStore実装に格納されます。デフォルトの実装では再生キャッシュが使用されるため、再コンパイル時に再度認証する必要があります。キャッシュ内のデータがクリアされています。

あなたはユーザーを維持したい場合は再コンパイル/をすることができます再起動後にログイン:

  1. は、物事を持続AuthenticatorStoreの実装を作成します。
  2. ファイルシステム内で永続化するようにehcache.xmlファイルを変更します(diskPersistent = "true")。
+0

私は自分のehcache.xmlファイルを更新しましたが、これは動作しません –

+0

ehcache.xmlファイルをapp/confディレクトリにコピーしましたか? – Jorge

+0

はい、ファイルはapp/confにあります –

関連する問題