gpt4 book ai didi

grails - 使用 Groovy Spring security getCurrentUser 获取有意义的字符串

转载 作者:行者123 更新时间:2023-12-02 15:11:31 24 4
gpt4 key购买 nike

我为当前用户收集字符串的代码如下所示。

package timetracker2

import grails.timesecurity.*
import timetracker2.TimeController

class Time {

def springSecurityService

int id
Project projectname
Date dateCreated
Date dateWorked
Double timeSpent
TimeClassification classification

String currentUser = {
String currentUser = springSecurityService.getCurrentUser()
def user = springSecurityService.getCurrentUser()
String username = user
return username
}

static constraints = {
timeSpent blank: false
classification blank: true
}

static mapping = {
table 'Time'
cache true
id column: 'Time_id'
dateCreated column: 'Date_created'
dateWorked column: 'Date_Worked'
timeSpent column: 'Time_Spent'
currentUser column: 'Username'
}
}

这是我得到的字符串....
timetracker2.Time$_closure1@108115

那是怎么回事????任何帮助将不胜感激。

我也尝试过使用获取授权,并且尝试在我的 person 类中添加一个 toString 方法。可惜没有成功。

最佳答案

我怀疑这里的部分问题是您正在尝试使用 springSecurityService在设置之前。声明中的初始化表达式

String currentUser = springSecurityService.getCurrentUser()

在构造对象时运行,但 springSecurityService此时引用为空,因为它仅在构造函数完成后才被注入(inject)。您可以将引用 springSecurityService 的代码放在变成 beforeInsert事件,这将延迟调用,直到对象第一次保存到数据库。你可能想要 principal.username而不是 getCurrentUser() (感谢 Burt Beckwith 的指点)
class Time {
def springSecurityService

String currentUser
// other fields...

def beforeInsert() {
currentUser = springSecurityService.principal.username
}

关于grails - 使用 Groovy Spring security getCurrentUser 获取有意义的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14662693/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com