【问题标题】:Grails Facebook Authentication plugin does not open FB auth pageGrails Facebook 身份验证插件无法打开 FB 身份验证页面
【发布时间】:2013-04-04 03:10:14
【问题描述】:

我正在尝试使用 Grails Facebook 身份验证插件。

我的目标是使用默认的服务器端身份验证。

根据文档

这是服务器端应用程序的首选和标准登录。单击“连接按钮”后,用户会被重定向到特殊的 Facebook 页面进行身份验证,然后重定向回您的应用。

我期待获得特殊的 FB 页面,但它正在重定向到直接到 /j_spring_security_facebook_redirect 代替。没有 FB 页面显示。

我没有登录FB

我的配置是这样的:

grails.plugins.springsecurity.facebook.domain.classname='br.com.fisgo.security.Credential'
grails.plugins.springsecurity.facebook.domain.relation = 'SameObject'

grails.plugins.springsecurity.facebook.secret = 'xxxx'
grails.plugins.springsecurity.facebook.appId = 'xxxxxx'

grails.plugins.springsecurity.facebook.filter.redirect.processUrl='/sign/facebookLogin'
grails.plugins.springsecurity.facebook.filter.type='redirect'

grails.plugins.springsecurity.facebook.taglib.button.text='Login com facebook'

我找不到问题。

我在重定向时遇到的错误是:

| Error 2013-03-18 09:35:50,307 [http-bio-80-exec-1] ERROR [/].[default] - 
Servlet.service() for servlet [default] in context with path [] threw exception
 Message: Cannot create a session after the response has been committed Line | Method 
->> 1110 | runWorker in java.util.concurrent.ThreadPoolExecutor - - - - - - - - - - - 
- - - - - - - - - - - - - - - - - - - - - - - - - | 603 | run in 
java.util.concurrent.ThreadPoolExecutor$Worker ^ 722 | run . . . in java.lang.Threa

我也找到了

ERROR facebook.DefaultFacebookAuthDao  - Can't find authority join class (br.com.fisgo.security.CredentialRole). Please configure 'grails.plugins.springsecurity.userLookup.authorityJoinClassName' value, or create your own 'List<GrantedAuthority> facebookAuthService.getRoles(user)'

课程可用

【问题讨论】:

  • /j_spring_security_facebook_redirect 之后接下来会发生什么?
  • 请将其添加到您的问题中

标签: facebook grails facebook-authentication


【解决方案1】:

我遇到了同样的Cannot create a session after the response has been committed 错误。

问题在于 Spring Security 不允许匿名访问 j_spring_security_facebook_redirect。不确定您是如何配置 grails spring 安全插件的,但在我们的例子中这有帮助:

grails.plugins.springsecurity.interceptUrlMap = [
....
'/j_spring_security_facebook_redirect': ['IS_AUTHENTICATED_ANONYMOUSLY'],
....
]

要找出问题的原因,请尝试在 FacebookAuthRedirectFilter 中注释掉第 59 行 response.sendRedirect(facebookAuthUtils.prepareRedirectUrl(getAbsoluteRedirectUrl(), facebookAuthUtils.requiredPermissions))

【讨论】:

    猜你喜欢
    • 2018-02-24
    • 2022-09-29
    • 2015-08-10
    • 2017-11-27
    • 1970-01-01
    • 2020-12-31
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多