我正在使用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除了记录一条永不被命中的消息外什么都不做。
任何帮助都非常感谢!
答案 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'
}
}