1

プロジェクトで Grails 2.1.1 を使用しています。現在、springSecurityService.currentUser を使用してユーザー資格情報などを取得しています。

過去 2 日間で、私のプロジェクトには CMS 拡張機能が必要で、Weceem プラグインに出くわしました。あちこちで物事を設定すると、最終的に Weceem プラグインを使用したプロジェクトが実行されるようになりましたが、springSecurityService.currentUser メソッドが呼び出されるたびに Null Pointer Exception が発生します。

weceem grails-plugin がなくてもすべて正常に動作しているため、いくつかの設定を行う必要があると思います。問題は、どこで、何ですか?

これは私のユーザークラスです

class User {

transient springSecurityService

String username
String password
boolean enabled = true
boolean accountExpired = false
boolean accountLocked = false
boolean passwordExpired = false
Person person

static hasOne = [Person]
static hasMany = [roles: Role]

static constraints = {
    username blank: false, unique: true
    password blank: false
}

static mapping = {
    password column: '`password`'
}

Set<Role> getAuthorities() {
    roles as Set
}

def beforeInsert() {
    encodePassword()
}

def beforeUpdate() {
    if (isDirty('password')) {
        encodePassword()
    }
}

protected void encodePassword() {
    password = springSecurityService.encodePassword(password)
}}

これは springSecurityService を呼び出した私のコントローラーです

//show the list of all person
def list = {
    //get all the sorting params
    params.sort = params.sort ?: 'firstName'
    params.order = params.order ?: 'asc'
    params.max = params.max ?: 10
    params.offset = params.offset ?: 0

    def test = springSecurityService.getCurrentUser()

    def personList = Person.createCriteria().list (max: params.max, offset: params.offset) {
        if (springSecurityService.currentUser.person.affiliate.value != 'Admin'){
            eq("affiliate", springSecurityService.currentUser.person.affiliate)
            eq("deleted", false)
        }
        order(params.sort, params.order)
    }
    render view:'list', model:[persons: personList, personTotal: personList.totalCount]
}
4

0 に答える 0