3

私の Web アプリは、認証と承認に Spring Security プラグインを使用しています。ユーザーパスワードを確認する必要があるAPIのようなものを構築しています。

usernameSpring Security は、5 つのログラウンドとプロパティをソルトとしてBCrypt を使用するように構成されています。

grails.plugins.springsecurity.password.algorithm = 'brcypt' 
grails.plugins.springsecurity.password.bcrypt.logrounds = 5
grails.plugins.springsecurity.dao.reflectionSaltSourceProperty = 'username' // password salting

ここで、コントローラーでユーザーのパスワードとログインを確認したいと思います。このために、私は電話しますspringSecurityService.encodePassword(cmd.password, cmd.username)

cmd私のパラメータを持つコマンドオブジェクトはどこにありますか。問題は、リクエストごとに、でエンコードされたパスワードspringSecurityServiceが異なり、データベースのユーザーパスワードと同じになることはありません。encodePassword次のような呼び出し で定数値も試しました。springSecurityService.encodePassword('foo', 'bar')結果は同じです。リクエストごとにエンコードされたパスワードが異なります。この方法では、ユーザーのパスワードを確認できず、データベースから有効なユーザー インスタンスを取得できません。

これを解決する方法はありますか?

4

1 に答える 1