【发布时间】:2015-11-14 12:44:30
【问题描述】:
我已经从一周开始学习 OAuth2 Spring Security,如果问题很简单,请原谅。这个话题对我来说似乎很容易,直到我开始研究它。 我将在我的应用程序中为 Rest 端点编写测试。为此,我将为我的资源类编写测试。但我的应用程序使用的是 OAuth2。
第一个想法是为此测试配置单独的授权服务器扩展 AuthorizationServerConfigurerAdapter。我已将 ClientDetailsService 配置为持久保存在内存中并添加了 InMemoryTokenService。但它不起作用。响应为 401 - 未经授权。
现在我只想提供 bean DefaultTokenServices 并以某种方式省略授权服务器(但如何?)。我没有更改“生产”资源服务器中的任何内容。
我知道如何添加不记名令牌。我正在使用 OAuth2RestTemplate 编写测试,并将访问令牌添加到 OAuth2ClientContext。我使用构造函数 DefaultOAuth2AccessToken(String value) 创建访问令牌。我知道有 TestRestTemplate 但在这种情况下 OAuth2RestTemplate 对我来说似乎更好。我正在使用 Spring Boot,也许这会有所帮助?
我的问题是: 1. 最好的解决方案是什么?配置 OAuth2 以执行 Rest 端点测试的最佳方法是什么?如何在没有授权服务器的情况下执行测试?也许我的理解不恰当? 2 有没有办法模拟对授权服务器的请求?怎么做?
提前感谢您的合作。
我阅读了很多资料,包括: http://projects.spring.io/spring-security-oauth/docs/oauth2.html 但我没有找到答案。
【问题讨论】:
-
有没有为此想出解决方案?
标签: java spring oauth spring-security