0

私はGrails 2.1.1Spring Security Core Plugin 1.2.7.3です。

ロールをユーザーに割り当て、BootStrap.groovyこれらの割り当てを保持しようとしています。BootStrap でロールと管理者ユーザーを作成します。

次のブログ投稿を見つけました: Spring Security のユーザー ロールの作成

このアプローチを試すと、次のようになります。

2012-09-16 22:00:56,762 エラー [org.codehaus.groovy.grails.web.context.GrailsContextLoader] ブートストラップの実行エラー:

groovy.lang.MissingMethodException: メソッドの署名がありません: User.addToAuthorities() は引数の型に適用できます: (Role) 値: 考えられる解決策: getAuthorities()

私も試しました

class BootStrap {

    def init = { servletContext ->
        ....
        admin.getAuthorities().add(adminRole) 
        admin.save(flush: true)
        ....
    }
} 

ただし、user_roleテーブルを確認したところ、空でした (確認したところ、管理者ユーザーと管理者ロールのエントリは、関連付けではなく、それぞれのユーザーとロールのテーブルにありました)。

私が間違っていることについて、誰かが私にガイダンスや洞察を提供してもらえますか? どうもありがとうございました。

4

1 に答える 1

4

そのブログ投稿は3年前のものであり、現在のプラグインには2つの点で間違っています。1つは、パスワードをエンコードしないでください。これは、Userクラスで行われます。そして、2つ(現在発生している問題)は、コレクションが使用されていないため、コレクションメソッド(addTo、removeFrom)を呼び出さないでください。UserRole.create admin, adminRoleプラグインのドキュメントで説明されているように呼び出します:http: //grails-plugins.github.com/grails-spring-security-core/docs/manual/index.html(特にセクション23.1のチュートリアル)。

于 2012-09-17T02:34:23.587 に答える