gpt4 book ai didi

grails - 使用Grails Spring Security Rest插件登录时获取用户详细信息

转载 作者:行者123 更新时间:2023-12-02 14:41:06 24 4
gpt4 key购买 nike

我正在使用grails spring安全插件。登录时,我得到用户名, token 和角色作为json响应。除了这些属性,我还想获取其他一些属性,例如名字,姓氏等。使用grails spring安全性其余插件登录应用程序时,如何获取这些值作为json响应?

最佳答案

您可以添加 token 声明,我通常建议您不要修改插件代码,但是

您可以通过在中添加新的声明来添加所需的详细信息
AbstractJwtTokenGenerator(或最好将其覆盖)

JWTClaimsSet generateClaims(UserDetails details, String serializedPrincipal, Integer expiration) {
JWTClaimsSet claimsSet = new JWTClaimsSet()
claimsSet.setSubject(details.username)

log.debug "Setting expiration to ${expiration}"
Date now = new Date()
claimsSet.setIssueTime(now)
use(TimeCategory) {
claimsSet.setExpirationTime(now + expiration.seconds)
}

claimsSet.setCustomClaim('roles', details.authorities?.collect { it.authority })
claimsSet.setCustomClaim('principal', serializedPrincipal)
//claimsSet.setCustomClaim('username', details.getUsername()) //added customized user name claim
log.debug "Generated claim set: ${claimsSet.toJSONObject().toString()}"
return claimsSet
}

注意:claimsSet.setSubject(details.username)中的主题已包含用户名

关于grails - 使用Grails Spring Security Rest插件登录时获取用户详细信息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34390738/

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