2011-06-28 7 views
0

Grailsアプリケーションでスプリングセキュリティコアプラグインを使用しています。私はプラグインをインストールし、正常に動作しているブートストラップにデフォルトのユーザーを提供しました。しかし、私はアプリケーションで新しいユーザー(サインアップ)を作成するためのオプションを提供したいと思います。これを達成する最良の方法は何ですか?私はUserControllerで、次のコードを試みた:Grailsのスプリングセキュリティプラグインを使用してユーザーを作成する

def save = { 
    def userRole = SecRole.findByAuthority("ROLE_USER")?: new SecRole(authority:"ROLE_USER").save(failOnError:true) 
    def adminRole = SecRole.findByAuthority("ROLE_ADMIN") ?: new SecRole(authority:"ROLE_ADMIN").save(failOnError:true) 

    def newUser = new User(
         username: params.username, 
         password: springSecurityService.encodePassword(params.password), 
         enabled: true) 

    SecUserSecRole.create newUser, userRole 
} 

をそれが仕事とjava.lang.NullPointerExceptionが発生していません。 アイデア ありがとうございます。

答えて

2

お客様はsave()に電話する必要があります。

+0

ありがとうございます!私はsave()を完全に忘れてしまった –

0

私は既存のロールをロードしようとしませんでした。私は上記のコメントでそれをテストしました(私のバグを修正して保存したのではなく、両方のバージョンがうまくいきました)。だからSecUserSecRole.createで十分でした。

関連する問題