[英]Grails and Spring Security: How catch user into controller?
這是我的錯誤:
無法在空對象上調用方法getCurrentUser()。 Stacktrace如下:
消息:無法在空對象上調用方法getCurrentUser()
我的代碼:
import org.springframework.dao.DataIntegrityViolationException
import grails.plugin.springsecurity.annotation.Secured;
@Secured('ROLE_SYSTEMADMIN')
class InstanceController {
...
def save() {
def instanceInstance = new Instance(params)
def springSecurityService
println("user is"+springSecurityService.getCurrentUser());
...
我用:
我已登錄。 我確定。 謝謝您的回復。
拉賽爾
您將springSecurityService
定義為方法變量。 您應該將其定義為實例變量:
class InstanceController {
def springSecurityService
def save() {
def instanceInstance = new Instance(params)
println("user is"+springSecurityService.getCurrentUser());
..
}
}
現在,一旦創建控制器,spring就可以注入springSecurityService
。
由於您未聲明為控制器的全局屬性,因此未注入服務。 從您的save方法中聲明它,然后調用currentuser屬性,這應該可以工作。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.