データベースアカウントのパスワード暗号化の詳細な説明と例 データベースアカウントとパスワードはデータベース内で暗号化されることが多いのですが、問題があります。UserService を使用してパスワードを暗号化する場合、Spring Security で検証された暗号化方式が別途構成されるため、Spring Security も同期的に構成する必要があります。次のように: <認証マネージャー> <認証プロバイダーのユーザーサービスref="userDetailService"> <パスワード エンコーダ ref="passwordEncoder" /> </認証プロバイダー> </認証マネージャー> <beans:bean class="com.sapphire.security.MyPasswordEncoder" id="passwordEncoder"> <beans:コンストラクタ引数値="md5"></beans:コンストラクタ引数> </beans:bean> 上記の構成ファイルに示されているように、passwordEncoder は Spring Security がアカウントを暗号化して検証する場所です。 傍受後、Spring Security はまずユーザーを検索し、自身で定義された userDetailService を通じて対応するユーザーを見つけ、次にフレームワークがパスワード一致検証を実行します。 userDetailService からユーザーを取得した後、フレームワークで定義されている DaoAuthenticationProvider に入り、認証メソッドにジャンプします。 このメソッドは、次の 2 つのチェックを実行します。 * preAuthenticationChecks: 主にユーザー情報の有効期限が切れていないかなどを確認します。呼び出しメソッドはuserDetailで定義されています。 * additionalAuthenticationChecks: これはユーザー名とパスワードの検証プロセスです。 PasswordEncoder は xml に挿入される Bean なので、自分で完成した passwordEncoder を呼び出します。 パブリッククラス MyPasswordEncoder は MessageDigestPasswordEncoder を拡張します { パブリックMyPasswordEncoder(文字列アルゴリズム) { スーパー(アルゴリズム); } @オーバーライド パブリックブール値isPasswordValid(文字列encPass、文字列rawPass、オブジェクトsalt) { encPass.equals(DigestUtils.md5DigestAsHex(rawPass.getBytes())) を返します。 } } これは私の実装のシンプルなバージョンです。Spring に付属する暗号化アルゴリズムを呼び出します。非常にシンプルです。もちろん、複雑な暗号化方法を使用することもできます。これはあなた次第です。 読んでいただきありがとうございます。お役に立てれば幸いです。このサイトをサポートしていただきありがとうございます。 |
<<: userdel コマンドを使用して Linux ユーザーを削除する方法の詳細なチュートリアル
この記事では、参考までにMySQLのインストールと設定のチュートリアルを紹介します。具体的な内容は次...
昨年の前半から開発と娯楽のために Linux を使い始めましたが、今では Windows には戻れま...
マウスをホバーすると画像が折りたたまれる効果を実現する CSS 1. 実施のポイント折り畳みは複数の...
Vue での v-on:clock の使用現在、vue.js フレームワークを学習しています。後で参...
要件:ページ コンテンツが短く、ブラウザーの高さをサポートできない場合でも、フッターをウィンドウの下...
リンクのターゲット属性は、リンクが開く場所を決定します。その値は通常、_blank、_self、_p...
無線インタラクションにずっと興味があったので、今回は実践してみようと思います〜この分析と評価は iO...
絶対 URL は、インターネット上の特定のファイルに必要なすべてのコンテンツを表すために使用されます...
導入パート1: 冒頭に書いたOneProxy は、民間ソフトウェアによって完全に独立して開発された分...
コードをコピーコードは次のとおりです。 <html xmlns="http://ww...
参考: MySQL 文字セットの概要utf8mb4 は MySQL 8.0 のデフォルトの文字セット...
序文:この記事は、jackyzm のブログ https://www.cnblogs.com/jack...
自己学習型ゲーム開発の道において、最も充実した瞬間は、自分でミニゲームを作り、友達と共有して試しにプ...
1. 事例会社のトップ以外の従業員全員を年齢別にグループ化します。 t_emp で id が存在しな...
導入前の記事で述べたように、NodeJS には 2 種類のスレッドがあります。1 つは、ユーザー リ...