Grails spring security facebook插件重定向到错误的页面

时间:2014-07-13 17:57:33

标签: facebook spring grails spring-security grails-plugin

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

我的FB应用设置的网站网址为http://localhost:8080/rar/。我正在使用这些插件:

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 个答案:

答案 0 :(得分:1)

您还应在config.groovy

中设置以下设置
grails.plugin.springsecurity.facebook.filter.redirect.successHandler='redirectSuccessHandlerExample'

在resources.groovy:

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

}