2

User クラスのパスワード フィールドの更新に問題があります。grails で SpringSecurity プラグインを使用していますが、このようにする必要があることがわかりましたが、機能していません...

user.password = springSecurityService.encodePassword(
                params.password, userInstance.username)

も試した

user.password = springSecurityService.encodePassword(
                params.password)

何か案は?

4

2 に答える 2

2

プラグインの新しいバージョン (1.2.7 以降) を使用している場合は、User クラスで生成されたコードが自動的に行うため、パスワードを明示的にエンコードする必要はありません。ドメインクラスがそうでない場合にのみ呼び出しspringSecurityService.encodePasswordてください。そうしないと、二重にエンコードされてログインできなくなります。

パスワードを自分でエンコードする場合、表示された最初のバージョンはユーザー名をソルトとして使用しており、2 番目のバージョンにはソルトがありません。パスワードをソルトすることは良い考えですが、必須ではありません - ドキュメントのセクション 12.2 - http://grails-plugins.github.com/grails-spring-security-core/docs/manual/でそれについて読むことができます

于 2012-04-08T22:07:51.793 に答える
0

Grails Spring Sec プラグインの作成者が彼の ui プラグインでどのようにそれを行っているかを見てみたいと思うかもしれません。

https://github.com/grails-plugins/grails-spring-security-ui/blob/master/grails-app/controllers/grails/plugins/springsecurity/ui/UserController.groovy

于 2012-04-08T19:21:36.370 に答える