電脳羊(Android Dream)

アクセスカウンタ

zoom RSS Spring boot パスワードをハッシュ化する

<<   作成日時 : 2016/07/22 16:56   >>

ブログ気持玉 0 / トラックバック 0 / コメント 0

Spring bootではセキュリティ関連の機能も充実しています。

ユーザ新規登録した際のパスワードをハッシュ化してデータベースに保存しておきます。

1、build.gradleに追記
dependenciesに
compile('org.springframework.boot:spring-boot-starter-security')
を追記します。

2、ハッシュ化処理
PasswordEncoder passwordEncoder = new BCryptPasswordEncoder();
String hashedPassword = passwordEncoder.encode(str);

3、DBに保存
ハッシュ化すると長くなるのでパスワードを保存するフィールドも長くしておきます
最低60桁
ハッシュ化したパスワードをDBに保存します。

4、アプリケーション起動
$ gradle bootRun
起動するとユーザ名とパスワードを聞かれます。
画像


boot:spring-boot-starter-securityを追加すると自動的にBASIC認証するようになるそうです。
ユーザ名はuserで固定
パスワードはコンソールに以下のように表示されているはずです。
Using default security password: 6cff2923-7ddd-4883-bfd8-9e0a7447e4eb

ハッシュ化については以下が詳しいです。
http://terasolunaorg.github.io/guideline/5.1.0.RELEASE/ja/Security/Authentication.html#springsecurityauthenticationpasswordhashing
http://www.slideshare.net/navekazu/spring-bootweb-55470364



閑話休題
前任者(もういない)が作成したプロジェクトを変更するためにソースコードを社内のレポジトリからダウンロードしてビルド、ログインしようとしたらパスワードが分からない、書いてない。
テーブルの初期値を入れるSQL文には既にハッシュ化した値を入れてる。
そしてハッシュ化した値を元に戻す機能はない(EncodeはあってもDecodeはない)
しょうがないので、適当にパスワードを決めてハッシュ化したものでテーブルのpasswordフィールドを書き換えてログインしました。ちゃんちゃん

テーマ

注目テーマ 一覧


月別リンク

ブログ気持玉

クリックして気持ちを伝えよう!
ログインしてクリックすれば、自分のブログへのリンクが付きます。
→ログインへ

トラックバック(0件)

タイトル (本文) ブログ名/日時

トラックバック用URL help


自分のブログにトラックバック記事作成(会員用) help

タイトル
本 文

コメント(0件)

内 容 ニックネーム/日時

コメントする help

ニックネーム
本 文
Spring boot パスワードをハッシュ化する 電脳羊(Android Dream)/BIGLOBEウェブリブログ
文字サイズ:       閉じる