シーン
私は後に、システムはこの期間中、ユーザーは我々のシステムを使用して再度ログインすることができない、いくつかの時間のためにユーザーを覚えているだろう、この機能の多くをログに記録するユーザのログイン時間を覚えておく必要があります。以下に示すように、ユーザ機能の基本的な原則を忘れないでください:
ユーザーがログオンすると、要求がフィルタUsernamePasswordAuthenticationFilterに送信され、認証が成功した場合、このフィルタはRememberMeServiceは、トークンを生成します呼び出すRememberMeService TokenRepository、トークンおよびユーザが内部ありながら、トークンは、ブラウザのクッキーに書き込まれます情報がデータベースに書き込まれます。ユーザーが再びシステムにアクセスする際、RememberMeAuthenticationFilterのフィルターを通過します特定のインターフェイスにアクセスするように、彼はトークンに基づいて、データベースからレコードがあるかどうかがある場合RememberServiceは、チェックTokenRepository使用する、RememberServiceに、クッキーのトークンを読み込みますユーザー名、ユーザー名に基づいてユーザー情報を取得UserDetailServiceを呼び出した後、取り出し、その後、SecurityContextが中に配置を記録します。
実装クラス
まず、我々はRedisのを使用し、CRUD機能を実装するクラスのオペレーティング・トークンを達成するためには、新しいクラスRememberMeHandlerを保存し、このクラスでは、全体的なクラス構造を見て最初にすべての、インタフェースPersistentTokenRepositoryを実装する必要があります。
お問い合わせを容易にするために、我々は3にRedisのためにデータを保存するときに、ユーザーを覚えておく必要があり、シリーズをベースにしているそのうちの2つのユーザー名とユーザー名のチェックシリーズをご確認ください。格納されたトークンが両方の30日のように、定義された15日間の長さ。下の3つの方法は、これらの二つの重要な方法を保存して、キーのすべてのメソッドを生成することです。四のオーバーライドされたメソッドは、CRUDメソッドです。まず、新見:
ユーザーは、ユーザーの情報は15日間の有効期限をRedisのと定義するために追加された一緒に入れたときに覚えておく必要があります。その後、変更、削除を見て:
これは、通常の操作の内容を保存するために、クエリを見て最後のものです:
ユーザー情報、自動認証をチェック、ユーザーは、ユーザーがログオンすることを覚えておいてください。
JDBCを達成するためにインターネットを使用する多くの方法がありますが、それも良い選択です。
私を覚えているの設定
セキュリティの設定クラスでは、あなたは私の名前とパラメータ処理クラスを覚えて設定する必要があります。
認証の設定が認証を使用することに注意してください()。私は、ログインページを増やすに注意してください:
パラメータは覚えて、私を私のデフォルトのセキュリティの名前を覚えているの名前であることに注意してください。
テスト
未確認私を覚えて、ログインをクリックして、Redisのと、トークン情報を記録私を忘れないでください確認し、ログインをクリックしなかった、あなたは私の情報はRedisの中に記録されて見て覚えています:
私たちは、プロジェクトを開始し、あなたが成功をログに記録せずに直接見ることができ、同じブラウザでページを訪問し、その後、再起動するプロジェクト、ユーザのログインが成功すると覚えておいてくださいチェック!