Grails Spring安全性-主体是匿名用户

Grails Spring安全性-主体是匿名用户,grails,spring-security,Grails,Spring Security,我正在自己的本地机器和Linux服务器上进行一个项目 我有以下奇怪的问题: 在服务器上,authentication.principal正确返回与我一起登录的用户。 不幸的是,在我自己的机器上,返回了一个匿名用户。 代码完全一样,项目也一样。唯一的区别是操作系统和底层JDK 在我自己的本地计算机上,返回正确主体的唯一位置是在ApplicationEventAuthenticationSuccessEvent事件{方法的void中。event.source.principal是正确的,而不是匿名用

我正在自己的本地机器和Linux服务器上进行一个项目

我有以下奇怪的问题:

在服务器上,authentication.principal正确返回与我一起登录的用户。 不幸的是,在我自己的机器上,返回了一个匿名用户。 代码完全一样,项目也一样。唯一的区别是操作系统和底层JDK

在我自己的本地计算机上,返回正确主体的唯一位置是在ApplicationEventAuthenticationSuccessEvent事件{方法的void中。event.source.principal是正确的,而不是匿名用户

我添加了一个似乎有效的黑客,并强制执行正确的主体。登录后可能是什么原因导致注销

以下内容似乎暂时解决了这个奇怪的问题:

 void onApplicationEvent(AuthenticationSuccessEvent event) {
    log.debug("AuthenticationSuccessEvent, setting session")

    //Handles strange fringe case where personService.currentPerson returns anonymousUser even though login has taken place
    if(grailsApplication.config.debugForceReauthenticationWithPrinciple)springSecurityService.reauthenticate personService.getCurrentPerson(event.source.principal, true).username

    pService.setupSession(pService.getCurrentPerson(event.source.principal, true), session)

要澄清的是,问题是springSecurityService.getPrincipal返回anonymousUser,即使我在自己的机器上登录。

@Burt Beckwith感谢您的编辑。我重新检查了代码,发现我键入的代码是错误的。^^:我注意到失败是第一次尝试登录。第二次成功。