Grails Spring Security - 主要是匿名用户

时间:2015-03-26 22:06:13

标签: grails spring-security

我正在自己的本地计算机和Linux服务器上进行项目。

我有以下奇怪的问题:

  • 在服务器authentication.principal上正确返回我已登录的用户。
  • 不幸的是在我自己的机器上#34; anonymousUser"正在退货。

代码完全相同,项目是一样的。唯一的区别是操作系统和底层JDK。

在我自己的本地计算机上,返回正确主体的唯一位置是void onApplicationEvent(AuthenticationSuccessEvent event) {方法。 event.source.principal是正确的而不是anonymousUser

我添加了一个似乎有用的黑客并强制使用正确的主体。登录后是否会导致注销?

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

 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

0 个答案:

没有答案