Spring 安全核心插件 - 如何从控制器访问用户 ID
Spring security core plugin - How to access User id from a controller
当我尝试从控制器获取当前登录用户 ID 时出现错误消息。
错误信息:
信息
无方法签名:static grails.plugin.springsecurity.SpringSecurityService.getCurrentUserId() 适用于参数类型:() 值:[] 可能的解决方案:getCurrentUserId()、getCurrentUser()
package com.testapp
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.SpringSecurityService
@Secured('IS_AUTHENTICATED_FULLY')
class TestController {
def myAction(){
def user = SpringSecurityService.getCurrentUserId()
}
该方法不是静态的,因此您需要为单例 Spring bean 添加依赖注入并将其作为实例方法调用:
package com.testapp
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.SpringSecurityService
@Secured('IS_AUTHENTICATED_FULLY')
class TestController {
SpringSecurityService springSecurityService
def myAction() {
long userId = springSecurityService.getCurrentUserId()
}
}
当我尝试从控制器获取当前登录用户 ID 时出现错误消息。
错误信息: 信息 无方法签名:static grails.plugin.springsecurity.SpringSecurityService.getCurrentUserId() 适用于参数类型:() 值:[] 可能的解决方案:getCurrentUserId()、getCurrentUser()
package com.testapp
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.SpringSecurityService
@Secured('IS_AUTHENTICATED_FULLY')
class TestController {
def myAction(){
def user = SpringSecurityService.getCurrentUserId()
}
该方法不是静态的,因此您需要为单例 Spring bean 添加依赖注入并将其作为实例方法调用:
package com.testapp
import grails.plugin.springsecurity.annotation.Secured
import grails.plugin.springsecurity.SpringSecurityService
@Secured('IS_AUTHENTICATED_FULLY')
class TestController {
SpringSecurityService springSecurityService
def myAction() {
long userId = springSecurityService.getCurrentUserId()
}
}