Grailsに変換しているPHPアプリケーションがあります。PHPアプリケーションは、ソルトメカニズムを使用してすべてのユーザーのパスワードをエンコードしました。
ソルトおよびソルトされたパスワードをGrailsの(カスタム)ユーザーデータベースに移動すると、Grailsアプリケーションにログインしているときにログインできません。
もちろん、私はSpring Security Coreプラグインを使用しており、このチュートリアルで指定されているように、Userドメインクラスにsaltを追加しました。これはここで見つかりました:Grails with SpringSecurityPluginとSaltedPasswords
チュートリアルを実行した後、ユーザーを追加して、そのユーザーで正常にログインできます。
[BootStrap.groovy]:
new User( username:"user", email:"user@place.com", password:"password", enabled:true).save(flush: true)
(このチュートリアルを使用して追加した電子メールの追加にも気付くかもしれません)
しかし、PHPプロジェクトから転送されたユーザーを使用してログインできません。それが助けになるなら、パスワードがどのようにエンコードされたかは次のとおりです。
$password = "password";
$salt = bin2hex( openssl_random_pseudo_bytes( 32 ) );
$passwordSalted = hash( "sha256", $salt . $password );