2017-01-15 7 views
0

私はjavaFXベースのサーバークライアントアプリケーションを構築しています。 このアプリには、ログインのためのパスワードを含むユーザー情報を保持するmysqlデータベースがありますが、ユーザーからの同時ログインを防止するために、私はHttpServletRequestとSessionを使用する前に行っていますが、デスクトップアプリケーションで同じことをする方法は?javafxの同じユーザーからの同時ログインを防ぐ

+0

おそらく最も一般的な方法は、sessionIDと最後のアクセスtimeStampを格納することです。 Webサーバーと同じ方法で生成することができます –

答えて

0

これはややこしいことがあります。クライアントは接続ごとに一意のランダムIDを提示する必要があり、サーバーはそれを格納する必要があります。

トリッキーな部分は、ユーザーがログアウトするとわかります。通常の状況では、ログアウトのためのRESTメソッドを作成できますが、正常でないシャットダウンの場合はどうなりますか?サーバーはクライアントがもう存在しないことをどのように知っていますか?

私はカップルの方法は、この周りに動作するように参照してください。

  1. は、最初のセッションでログインしたユーザを保管してください。ユーザーがサインインしたら、新しい認証要求を拒否します。そのセッションで最後に交換されたメッセージのタイムスタンプを保存しているクライアントの非正常なシャットダウンを処理する方法を見つける必要があるため、これは難しいことです。
  2. 新しいセッションを受け取った場合は、古いセッションを破棄してください。これにより、ソリューション1の状況が回避され、ユーザーは常にサインインできます。古いセッションは無効になります。
関連する問題