pact-jvm测试多层授权

时间:2017-11-24 12:23:30

标签: java pact pact-jvm

我想通过pact-jvm测试我的授权服务。 在我的请求中,我通过帖子发送一个html-body,包括一些用于验证用户的元数据 - 包括他的用户名,以及在我使用Http Basic Auth的标题中发送的内容。在从配置文件中读取用户名+密码后,在我的JUnit-Test中使用@TargetRequestFilter在我的testclass中添加标头。 这是因为应用程序在不同的层上运行。每个层都有另一个用户名+密码组合。协议应适用于每一层。此外,当用户更改时,我只想在配置文件中进行少量更改。它包含用户名,密码,主机名,端口和协议。

问题是:我需要根据配置文件的内容操作请求的html主体,以匹配我在testclass中设置的标头,而不是每次都创建新的pact文件。

所以我的问题是:有没有办法在JUnit类中操作我期望的html-body的部分(通过pact)?

也许还有另一种解决我的问题的方法我还没有看到。

提前致谢!

为了清楚起见,请求的示例:

<body>
    <soap:envelope xmlns:soap="http://schemas.xmlsoap.org/soap/envelope/">
        <soap:body>
            <ns2:authevalrequest1
                xmlns:ns2="http://authgroup/authBRS/specification/ServiceView/AuthProvider/authBRS/">
                <inputmetadata> <version>V_1_0_0</version> <metadataentry>
                <key>US</key> <value>some_username</value> </metadataentry> <metadataentry>
                <key>MA</key> <value>some_user_id</value> </metadataentry> </inputmetadata>
                <request> <attrs> <type>String</type> <values>
                <value>some_user_id</value> </values> <xacml>urn:oasis:names:tc:xacml:1.0:subject:subject-id</xacml>
                </attrs> <attrs> <type>String</type> <values> <value>00</value>
                </values> <xacml>http://thisisaservice.com/resource/dataRES</xacml>
                </attrs> <attrs> <type>String</type> <values> <value>abc</value>
                </values> <xacml>http://thisisaservice.com/subject/authprofilename</xacml>
                </attrs> <attrs> <type>String</type> <values> <value>importData</value>
                </values> <xacml>http://thisisaservice.com/resource/CompanyfunctionRES</xacml> </attrs>
                </request>
            </ns2:authevalrequest1>
        </soap:body>
    </soap:envelope>
</body>

我无法更改提供者或消费者。我就在这里进行验证工作。

编辑:也许我忘了说...我想让响应机构匹配(实际和预期),什么都没问题。但我需要根据我的配置文件修改请求的html主体。

0 个答案:

没有答案