2

SpringSecurityプラグインでGrailsを使用しています。s2-quickstartを実行したので、user-domain-classの名前は「User.groovy」、role-domain-classの名前は「Role.groovy」でした。その結果、マッピングクラスは「UserRole.groovy」という名前になりました。次に、BootStrap.groovyを変更してサンプルユーザーを作成しました。これにより、「Groovy:unexpected token:UserRole @ line 19、column2」という厄介な構文エラーが発生しました。「UserRole.create」を呼び出すとき。

これは私のBootStrap.groovyファイルです:

import com.foo.Role
import com.foo.User
import com.foo.UserRole


class BootStrap {

    def springSecurityService

    def userSecRole = Role.findByAuthority("ROLE_USER") ?: new Role()(authority: "ROLE_USER").save()

    def user = new User(
        username: "user",
        password: springSecurityService.encodePassword("user"),
        enabled: true
        )


    UserRole.create user, userSecRole     // <--- This is where the error happens


    def init = { servletContext ->
    }
    def destroy = {
    }
}
4

1 に答える 1

2

コードをメインクラス定義に配置しました。

そのコードはinitクロージャー内にある必要があります。つまり、次のようになります。

import com.foo.Role
import com.foo.User
import com.foo.UserRole

class BootStrap {

    def springSecurityService

    def init = { servletContext ->
      def userSecRole = Role.findByAuthority("ROLE_USER") ?: new Role()(authority: "ROLE_USER").save()

      def user = new User(
          username: "user",
          password: springSecurityService.encodePassword("user"),
          enabled: true
          )

      UserRole.create user, userSecRole     // <--- This is where the error happens
    }
    def destroy = {
    }
}
于 2012-07-29T14:14:51.600 に答える