如何在 pact Json Generation 中发送授权细节或在 PACT PYTHON 中发送给 pact verfier

how to send authorization details in pact Json Generation or to pact verfier in PACT PYTHON

如何在 MOCK 服务中发送授权详细信息或在 PACT 中发送给协议验证者 PYTHON

当我通过 soapUI 调用 API 它工作正常但是当我 运行 它通过 Pact verfier 模拟 Json 时,它失败了,因为我没有在请求中发送授权详细信息header 或不添加协议验证者。 你能帮我如何通过 PACT python 中的请求 headers 发送授权详细信息吗?

def test_HappyPath (self):
            mockurl = 'http://localhost:1234'
            expected =  {body:true}
            pact.given (
                'Given there is a valid  form'
            ).upon_receiving (
                'fetch all the info '
            ).with_request (
                 'get',
                '/',headers={Authorization:'Bearer 58771381-333e-334f-9604-784'}
            ).will_respond_with(200, body=expected)
  with pact:
                result = callAPI ( mockurl )
            self.assertEqual(result, expected )

请求和授权信息:

 GET https: http....com/ /v1/ forms/83359274-7ad6-4
    Accept-Encoding: gzip,deflate
    Authorization: Bearer 58771381-333e-334f-9604-ebf977ed7784
    Content-Length: 0
    Host: company.com
    Connection: Keep-Alive
    User-Agent: Apache-HttpClient/4.5.2 (Java/1.8.0_162)


OAUTH2.0: 
CSClientUser=username
CSClientPassword=pwd
CSClientIdendification=xxxx
CSClientSecret=fffff
CSAccessTokenURI=company.com/oauth2/token

请阅读 https://docs.pact.io/faq#how-do-i-test-oauth-or-other-security-headers 作为起点。

在消费者方面,您所做的很好(尽管如果您要生成唯一令牌,您可能需要一个匹配器)。

在提供商方面,您需要将(尚未在 pact-python 中记录)标志 --custom-provider-header 选项传递给验证过程[1],这允许您覆盖一个或多个headers 具有动态值(在您的情况下,是实时身份验证令牌)。

这当然假设您无法在提供商验证期间模拟身份验证系统

在幕后,产生了一个单独的服务[2] 来执行此验证。 link 中提供了有关此功能的更多信息。