gpt4 book ai didi

Grails如何在 Controller 上调用MyUserDetailsS​​ervice?

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

我有自定义 MyUserDetailsS​​ervice

class MyUserDetailsService implements GrailsUserDetailsService {
...
}

我想调用我的 Controller
class MyController {
def springSecurityService

def check() {
String user = springSecurityService.principal.username
def MyUserdetails = MyUserDetailsService.loadUserByUsername(user)
}
}

并得到错误

No signature of method: static MyUserDetailsService.loadUserByUsername() is applicable for argument types: (java.lang.String) values: [user] Possible solutions: loadUserByUsername(java.lang.String), loadUserByUsername(java.lang.String, boolean)



我想在登录后检查用户,所以我不把它放在 bean 中。

最佳答案

我相信您会在文件 grails-app/conf/spring/resources.groovy 中使用 Grails 注册您的自定义用户详细信息服务,例如:

beans = {
userDetailsService(com.mycompany.myapp.MyUserDetailsService)
}

注册后,您可以通过在 Controller 中声明 userDetailsS​​ervice 变量并使用它来依赖 Grails 自动服务注入(inject),例如:
class SomeController {
def userDetailsService
...
def someAction() {
String user = springSecurityService.principal.username
CustomUserDetails userdetails = userDetailsService.loadUserByUsername(user)
}
}

文档 here很有帮助。

关于Grails如何在 Controller 上调用MyUserDetailsS​​ervice?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15048655/

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