mar*_*ano 5 java spring oauth spring-security
我从一个星期开始学习OAuth2 Spring Security,所以请问,如果问题很简单的话。在我开始研究之前,这个话题对我来说似乎都很容易。我将在应用程序中为Rest端点编写测试。为此,我将为资源类编写测试。但是我的应用程序正在使用OAuth2。
第一个想法是为该测试配置扩展AuthorizationServerConfigurerAdapter的单独的Authorization Server。我已将ClientDetailsService配置为持久保存在内存中,并添加了InMemoryTokenService。但这行不通。响应为401-未经授权。
现在,我只想将Bean DefaultTokenServices私有化,并以某种方式忽略了Authorization Server(但是如何?)。我没有在“生产”资源服务器中进行任何更改。
我知道如何添加不记名令牌。我正在使用OAuth2RestTemplate编写测试,并将访问令牌添加到OAuth2ClientContext。我使用构造函数DefaultOAuth2AccessToken(String value)创建访问令牌。我知道有TestRestTemplate,但是在这种情况下,OAuth2RestTemplate对我来说似乎更好。我正在使用Spring Boot,也许会有所帮助吗?
我的问题是:1.最佳解决方案是什么?配置OAuth2以便执行Rest端点测试的最佳方法是什么?在没有授权服务器的情况下如何执行测试?也许我的理解不合适?2有什么方法可以模拟对授权服务器的请求?怎么做?
预先感谢您的合作。
我已经阅读了许多材料,包括:http : //projects.spring.io/spring-security-oauth/docs/oauth2.html, 但是我找不到答案。
提供准确答案所需的更多信息:
如果进行单元测试,您根本不应该担心授权服务器。您想要的只是为您的mockMvc 查询(或反应式等效项)正确设置SecurityContext。
如果是集成测试,Spring 提供了相应的工具,但我将重点关注单元测试,因为我知道您正在尝试编写它。
spring-security-oauth2 已弃用,并且不支持单元测试,但我在另一个问题的答案中详细介绍了如何创建注释来配置此类安全上下文。
从版本 5.2(选择最新的里程碑)开始,spring-security-test 对使用 JWT 保护的单元测试 @Controller 提供了基本支持。如果您使用内省或安全@Service,则必须参考我编写的这个库,因为 spring-security 团队选择仅集成我工作的一小部分。
| 归档时间: |
|
| 查看次数: |
689 次 |
| 最近记录: |