【问题标题】:Grails - Spring Security / Social - Facebook plugin setAccessToken and getAccessTokenGrails - Spring Security / Social - Facebook 插件 setAccessToken 和 getAccessToken
【发布时间】:2012-01-24 01:08:12
【问题描述】:

我刚刚完成了此页面上的安装说明:
http://grails.org/plugin/spring-security-facebook

我选择 AuthUser 作为用户域对象名称,并选择 AuthRole 作为我的角色域对象名称。在所有其他问题中,我选择默认值或输入我的 Facebook App ID 或 Facebook App Secret。

在流程结束时,我有一个 AuthUser 作为我的用户。我还有一个实现 FacebookUserDomain 的 FacebookUser。

当我尝试运行应用程序时,它告诉我我没有在我的 FacebookUser 中实现 getAccessToken 或 setAccessToken。这是 FacebookUserDomain 接口所要求的。这是正常的吗?文件需要填写吗?处理这个问题的正确方法是什么?

更新
这是我尝试用来解决问题的 FacebookUser 类代码。

class FacebookUser implements FacebookUserDomain {
  long uid
  String secret
  String session
  String email
  String accessToken

  static belongsTo = [user: AuthUser]

  static constraints = {
    uid unique: true
  }

  public String getAccessToken() {
    return accessToken
  }

  public void setAccessToken(String accessToken) {
    this.accessToken = accessToken
  }
}

同样报错:Configuring Spring Security Core ... ... 完成 Spring Security Core 的配置

配置 Spring Security Facebook ... 错误:没有为 Facebook Auth 配置 dao 错误:停止配置 Spring Security Facebook 2011-12-19 19:17:30,261 [main] 错误 util.JDBCExceptionReporter - 未知列 n 'where 子句'中的'deactivate_code' 无法执行本机批量操作查询 2011-12-19 19:17:30,496 [main] ERROR context.GrailsContextLoader - 错误执行 引导程序:找不到类 [class lmfirst] 的名称 [facebookId] 的属性 .AuthUser] org.codehaus.groovy.grails.exceptions.InvalidPropertyException:没有找到属性 d 代表类 [class lmfirst.AuthUser] 的名称 [facebookId] 在 lmfirst.UtilService.createMayor(UtilService.groovy:20)

【问题讨论】:

  • 注意:接受了答案,但 Spring Security 部分仍然存在问题。

标签: facebook grails spring-security spring-social


【解决方案1】:

你不需要为 accessToken 做 get/set,因为它是由 Groovy 自己自动添加的。拥有String accessToken 就足够了

关于 Facebook Auth dao - 你执行了grails s2-init-facebook 吗?它为你生成默认的 Dao 实现,并在conf/spring/resources.groovy注册它

【讨论】:

  • 好的。可能会在这里遇到 Spring Security 问题。我尝试访问该站点的主“主页”,但出现 500 错误。 org.springframework.security.authentication.BadCredentialsException:无效签名。我错过了什么?我是否需要允许未经身份验证的请求才能访问此页面?我该怎么做?
  • 之前应该说我放弃了这两种方法。并且默认的 FacebookAuthDaoImpl 在那里。不知道为什么我第一次遇到问题。
  • 似乎 500 Bad Credentials 错误源自 FacebookCookieFilter。我不确定为什么此时它正在寻找cookie,因为我试图请求的页面是“对所有人开放”,因为它在控制器方法上没有@attribute,对吧? +1
  • 嗯,你说得对,可能它必须跳过无效的 cookie。顺便说一句,当用户拥有您网站的 facebook cookie 且签名无效时,这种情况并不常见。确定您使用正确的 Facebook 凭据配置插件?
  • 凭据正确。不知道为什么我的帐户控制器索引方法经过身份验证。此时不应该跳过检查任何内容吗?我什至没有显示 facebook 连接按钮?
猜你喜欢
  • 2013-04-01
  • 2012-08-06
  • 1970-01-01
  • 2014-03-07
  • 2016-08-24
  • 2017-09-16
  • 2014-11-06
  • 1970-01-01
  • 2016-05-24
相关资源
最近更新 更多