【问题标题】:Mock OAuth server for testing用于测试的模拟 OAuth 服务器
【发布时间】:2016-04-27 08:21:40
【问题描述】:

我想知道是否可以模拟 oAuth(1,2) 身份验证流程。我想在不需要连接到提供者本身的情况下进行测试。这应该是可能的,因为它只是一些通信交换。我不是在寻找像this 这样他们仍然与远程服务器通信的东西。我想在测试时完全离线。

也许我可以运行自己的 oAuth 服务器。我应该使用 Google oAuth 服务,所以服务器的行为应该和他们一样。谷歌是否为他们的 oAuth 服务器提供了一些代码,或者是否可以创建一些假服务器。注意测试应该是更多的集成测试。我想命令服务器返回一些预定义的响应。切换到实时 oAuth 提供商将只是更改远程 URL。

也许只是一些 http 服务器是可以的,我只需要关心通信消息的正确格式。

【问题讨论】:

    标签: spring oauth spring-boot mocking integration-testing


    【解决方案1】:

    请参阅以下步骤以模拟 OAuth2 令牌,以便使用 SOAPUI 更快地进行本地开发。

    步骤:

    1. 创建一个 REST soapUI 项目,为 URL“http://localhost:9045/oauth/token”创建一个 POST 资源。

    2. 为上述资源创建模拟服务。

    3. 如下图创建一个Mock响应,你可以根据自己的需求添加自己的参数和值。

      { "access_token":"MockOauth2TokenForLocaldevelopmentnTQ0NjJkZmQ5OTM2NDE1ZTZjNGZmZjI3", "token_type":"bearer", "expires_in":35999, "scope":"read write", "jti":"4d540b94-1854-45fa-b1d6-c2039d94b681" }

    4. 启动模拟服务。

    5. 使用本地 REST POST 请求进行测试。

    模拟回复:

    模拟 Oauth2 SOAPUI 测试:

    【讨论】:

      【解决方案2】:

      查看 Spring 参考文档的 Client Side REST Tests 部分。借助此支持,您可以轻松伪造服务器并将所需行为记录到 MockRestServiceServer

      Here are some examples I created.

      【讨论】:

      • 我猜它真的很接近。在示例中,您正在查询用户数据,对吗?是否可以进行身份​​验证。可以说我想测试身份验证方法。所以我需要服务器返回一些令牌,发送重定向地址等。
      猜你喜欢
      • 2013-07-06
      • 2016-01-09
      • 1970-01-01
      • 2019-07-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-05-14
      • 1970-01-01
      相关资源
      最近更新 更多