使用 Spring Security 3 在我的 Grails OAuth 提供程序上存储访问令牌

Posted

技术标签:

【中文标题】使用 Spring Security 3 在我的 Grails OAuth 提供程序上存储访问令牌【英文标题】:Store access token on my Grails OAuth provider using Spring Security 3 【发布时间】:2011-06-12 07:20:14 【问题描述】:

我刚刚为我的 Grails 应用程序实现了一个 oAuth 提供程序,并且可以成功地验证我的客户端应用程序(使用标志)。我想做的下一件事是保留访问令牌,因此我的客户不必每次都接受许可。在服务器上,我使用 Spring Security OAuth 包。

我想我必须实现自己的 OAuthProviderTokenServices,但我不确定。有没有我可以使用的开箱即用的处理程序,或者有什么办法?

谢谢!!

【问题讨论】:

【参考方案1】:

OAuth2 (JdbcOAuth2ProviderTokenServices) 有一个开箱即用的提供程序,但看起来 OAuth 1 没有可比的类。最好的办法是继承 RandomValueProviderTokenServices 并实现三个抽象持久性相关方法。查看 JdbcOAuth2ProviderTokenServices 以获取可借用的代码,尤其是在序列化 Authentication 对象方面。

我以类似的方式实现了一个自定义的 JPA 支持的 OAuth2ProviderTokenServices,而且非常简单。

【讨论】:

好的,我开始实施并且它工作正常。只有反序列化是一个问题,因为类加载器找不到 groovy 类 GrailsUser。创建一个方法,以便您可以传递 groovy 类加载器。 如果您能分享用于解决此问题的代码,我们将不胜感激。 ;-)

以上是关于使用 Spring Security 3 在我的 Grails OAuth 提供程序上存储访问令牌的主要内容,如果未能解决你的问题,请参考以下文章

如何在我的新 Spring Boot 项目中关闭 Spring Security?

如何使用 Spring Security 在我的控制器中获取用户登录的角色

Spring Security 3.2 CSRF 禁用特定 URL

在 Spring Security 3 中动态创建新角色和权限

如何在我的 Spring 4.0 RestFul Web 服务上实现 Spring Security?

如何在 Spring Security 无状态(jwt 令牌)中注销用户?