以前のエントリ Play Frameworkのアプリ内にパスワード生成プロジェクトを追加のようなことをSpring Bootで行う方法について。 
上記エントリで書いたように、Gradleで簡単に定義できる。
暗号化方法は、Spring Bootでユーザ認証で書いたようにWebSecurityConfigurerAdapterの継承クラスでnew StandardPasswordEncoder()を設定している前提。 
他のEncoderを使う場合はタスクの内容を適宜書き換えれば良いはず。 
タスク作成
build.gradleに以下を追記する。 
Webアプリ側でSpring Securityを既に追加しているなら、taskだけ書き足してIDEにimportを補ってもらうだけで済むはず。
import org.springframework.security.crypto.password.StandardPasswordEncoder
:
dependencies {
    :
    compile 'org.springframework.boot:spring-boot-starter-security:1.2.2.RELEASE'
    :
}
task encodePassword << {
    StandardPasswordEncoder encoder = new StandardPasswordEncoder()
    String username = 'test'
    if (project.hasProperty('args')) {
        username = project.args.split('\\s+')[0]
    }
    println "Encoded password for user ${username}:"
    println encoder.encode(username)
}実行
以下を実行するとtestというパスワードを暗号化した文字列が表示される。
./gradlew encodePassword -Pargs="test"
0 件のコメント:
コメントを投稿