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