无法在空对象上调用方法 isLoggedIn()
Cannot invoke method isLoggedIn() on null object
我实际上有两个 spring 与安全相关的问题。
1,我的控制器中有以下代码用于更改密码
def changePassword() {
if (!securityService.isLoggedIn()) {
redirect(action: 'auth', controller: 'login')
return
}
}
当我在确认新密码后点击保存按钮时,它生成以下错误
NullPointerException occurred when processing request: [POST]
Cannot invoke method isLoggedIn() on null object.
现在我的问题是我哪里错了?
2,我的第二个问题也是类似的,我试图让当前用户这样
User currentUser = securityService.getCurrentUser()
currentUser.gender = gender
currentUser.save()
但仍然产生相同的错误
无法在空对象上调用方法 getCurrentUser()
注意:- 我正在使用 grails 2.4.4 和 spring security 2.0-RC4。
更新:- 我确实在我的 controller/service
中包含了 def securityService
SpringSecurityService 以这种方式自动连接到控制器:
def springSecurityService
并且使用 Groovy,您可以调用 springSecurityService.currentUser
而不是 getCurrentUser()
只需在您的控制器中添加 'def springSecurityService'
Class UserController{
def springSecurityService
def changePassword(){
//You can access springSecurityService now
if (!springSecurityService.isLoggedIn()) {
redirect(action: 'auth', controller: 'login')
return
}
}
}
我实际上有两个 spring 与安全相关的问题。
1,我的控制器中有以下代码用于更改密码
def changePassword() {
if (!securityService.isLoggedIn()) {
redirect(action: 'auth', controller: 'login')
return
}
}
当我在确认新密码后点击保存按钮时,它生成以下错误
NullPointerException occurred when processing request: [POST]
Cannot invoke method isLoggedIn() on null object.
现在我的问题是我哪里错了?
2,我的第二个问题也是类似的,我试图让当前用户这样
User currentUser = securityService.getCurrentUser()
currentUser.gender = gender
currentUser.save()
但仍然产生相同的错误
无法在空对象上调用方法 getCurrentUser()
注意:- 我正在使用 grails 2.4.4 和 spring security 2.0-RC4。
更新:- 我确实在我的 controller/service
中包含了def securityService
SpringSecurityService 以这种方式自动连接到控制器:
def springSecurityService
并且使用 Groovy,您可以调用 springSecurityService.currentUser
而不是 getCurrentUser()
只需在您的控制器中添加 'def springSecurityService'
Class UserController{
def springSecurityService
def changePassword(){
//You can access springSecurityService now
if (!springSecurityService.isLoggedIn()) {
redirect(action: 'auth', controller: 'login')
return
}
}
}