我是在 Grails 应用程序中使用 Spring Security 插件的新手。这是我让当前用户登录的代码。
String username = getPrincipal().username
但问题是我在每个操作中都写了这一行来获取当前用户。有没有办法全局获取当前用户?并在每个操作中使用它而不需要一次又一次地声明它?
最佳答案
您可以通过两种方式实现:
1) 您可以在任何您想要的地方注入(inject) SpringSecurityService,只需在任何 Controller /服务中即可:
SpringSecurityService springSecurityService
def someMethod(){
springSecurityService.principal
}
2)您可以使用SecurityContextHolder:
def someMethod(){
SecurityContextHolder.context.authentication?.principal
}
我建议使用选项 1,它使测试更容易等。
关于spring - grails - 获取全局当前用户,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43838290/