我想通过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主体。