代码之家  ›  专栏  ›  技术社区  ›  rotifan

Grails春季安全facebook插件重定向到错误页面

  •  0
  • rotifan  · 技术社区  · 10 年前

    我正在使用Grails Spring Security Core插件,现在通过FacebookAuthenticationforSpring Security核心插件添加了Facebook认证。我可以通过Facebook进行身份验证,但它总是重定向回不正确的URL。我想重定向到 localhost:8080/rar/user/home ,但在登录后,我被重定向到 localhost:8080/rar/#_=_ 。当通过标准登录表单登录时,我会被正确重定向到 本地主机:8080/rar/user/home .

    我的FB应用程序设置有 http://localhost:8080/rar/ 用于站点URL。我正在使用这些插件:

    compile ':spring-security-core:2.0-RC2'
    compile ":spring-security-ui:1.0-RC1"
    compile ":spring-security-facebook:0.15.2-CORE2"
    

    并具有以下配置设置:

    grails.plugin.springsecurity.successHandler.defaultTargetUrl = '/user/home'
    grails.plugin.springsecurity.facebook.filter.type='redirect'
    grails.plugin.springsecurity.facebook.domain.classname='mvp.FacebookUser'
    grails.plugin.springsecurity.facebook.domain.appUserConnectionPropertyName='user'
    grails.plugin.springsecurity.facebook.appId='<APPID>'
    grails.plugin.springsecurity.facebook.secret='<SECRET>'
    grails.plugin.springsecurity.facebook.filter.redirect.failureHandler='redirectFailureHandlerExample'
    grails.plugin.springsecurity.facebook.autoCreate.roles=['ROLE_USER', 'ROLE_FACEBOOK']
    

    我认为这对这个问题并不重要,但我有一个FacebookAuthService,它实现了create()来搜索与Facebook用户具有相同电子邮件地址的现有用户,如果找到了,则合并帐户。目前,我的redirectFailureHandlerExample只会记录一条从未命中的消息。

    非常感谢任何帮助!

    1 回复  |  直到 10 年前
        1
  •  1
  •   Danilo Marques    10 年前

    您也应该在config.groovy中设置以下设置

    grails.plugin.springsecurity.facebook.filter.redirect.successHandler='redirectSuccessHandlerExample'
    

    在resources.groovy:

    beans = {  
       redirectSuccessHandlerExample(org.springframework.security.web.authentication.SimpleUrlAuthenticationSuccessHandler) {
           defaultTargetUrl = '/rar/user/home'
    }
    
    }