Facebook graph api GrailsSpring安全性如何记住自定义身份验证?

Facebook graph api GrailsSpring安全性如何记住自定义身份验证?,facebook-graph-api,grails,spring-security,oauth-2.0,grails-plugin,Facebook Graph Api,Grails,Spring Security,Oauth 2.0,Grails Plugin,我将grails spring security与用于facebook身份验证的自定义身份验证方法结合使用: def auth() { ... } 当我在浏览器中检查cookie时,我可以看到浏览器会话关闭时cookie生存期结束。仅当我使用插件中的默认登录/auth操作时,才会设置持久记忆cookie 我必须做哪些更改,以使使用我的自定义身份验证方法登录的用户不会在会话之间注销 对于重新验证,我使用: def success() { // get facebook user

我将grails spring security与用于facebook身份验证的自定义身份验证方法结合使用:

def auth() {
    ...
}
当我在浏览器中检查cookie时,我可以看到浏览器会话关闭时cookie生存期结束。仅当我使用插件中的默认登录/auth操作时,才会设置持久记忆cookie

我必须做哪些更改,以使使用我的自定义身份验证方法登录的用户不会在会话之间注销

对于重新验证,我使用:

def success() {

    // get facebook user data

    springSecurityService.reauthenticate username

    if(springSecurityService.loggedIn) {
            // do something

    }
}

如何设置rememberMe cookie?

比较原始auth.gsp提交和自定义auth.gsp提交请求的POST参数。将有一个额外的隐藏字段,该字段已丢失。使用FixBug做这个。

想法:让Spring Security记住我的服务,知道它应该考虑成功登录。

  • 在facebook成功操作中,在成功验证后,执行以下操作:

    //wire remember me services
    def rememberMeServices
    
    //... in your action:
    springSecurityService.reauthenticate username
    
    def authentication = SecurityContextHolder.context.authentication
    rememberMeServices.loginSuccess(request, response, authentication)
    
  • 在Config.groovy中,添加以下内容

    grails.plugins.springsecurity.rememberMe.alwaysRemember = true
    

  • 我认为配置很好。可能是因为您将浏览器cookie首选项设置为“保留到”退出?我看到在原始的auth帖子中设置了grails\u memory\u me cookie。但是如何修改我的auth方法,使其也包括在内?这里有一个带有参数的帖子:_spring_security_memory_me=on j_password=user j_username=password我如何修改我的auth方法来设置这个cookie?之后如何进行身份验证?您应该只发送到j_spring_安全检查servlet。如果要修改行为,应更改配置或使用DI覆盖某些服务。看这里,我更新了上面的帖子。这是我的成功和注销操作。1.要设置“记住我”cookie,我必须更改什么?2.为了使auth操作显示为弹出窗口,我必须做什么?谢谢你的帮助。