gpt4 book ai didi

grails - springSecurityService.getCurrentUser()返回错误没有这样的属性:类的标识:java.lang.String

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

我试图将此代码添加到AdminLoginController中,以检查当前用户的角色。

def checkRole() {

User user = springSecurityService.getCurrentUser()

if(User.getRoleByUser(user.username).contains(Constants.ROLE_ADMIN)){
redirect uri:'/admin'
}else if(User.getRoleByUser(user.username).contains(Constants.ROLE_TWO)) {
redirect uri:'/two'
}else if(User.getRoleByUSer(user.username).contains(Constants.ROLE_THREE)){
redirect uri: '/three'
}else{

}
}

当我尝试运行该应用程序时,它显示以下错误:
 groovy.lang.MissingPropertyException: No such property: id for class: java.lang.String

错误在 User user = springSecurityService.getCurrentUser()行上

最佳答案

if (springSecurityService.isLoggedIn()) {

User user = securityService.getCurrentUser() //Note:- i used securityService not springSecurityService

List<Role> currentUserRoles = UserRole.findByUser(user).collect { it.role } as List

if(currentUserRoles.contains(Role.findByName(Constants.ROLE_ONE))) {

redirect(controller:'admin', action:'index')

} else if(currentUserRoles.contains(Role.findByName(Constants.ROLE_TWO))) {

redirect(controller:'two', action:'action')

} else if(currentUserRoles.contains(Role.findByName(Constants.ROLE_THREE))) {

redirect(controller:'three', action:'action')
}

} else {

redirect action: 'auth', params: params
}
}

注意:-userRole域类链接角色和用户。

关于grails - springSecurityService.getCurrentUser()返回错误没有这样的属性:类的标识:java.lang.String,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24185512/

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