簡體   English   中英

Grails和Spring Security:如何將用戶吸引到控制器中?

[英]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());
...

我用:

  • GGTS 3.4.0。
  • 編譯':spring-security-core:2.0-RC2'

我已登錄。 我確定。 謝謝您的回復。

拉賽爾

您將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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM