私はpact-jvmを使用して認証サービスをテストしたいと考えています。 私の要求では、ユーザ名を含むユーザを検証するためのメタデータや、Http Basic Authを使用するヘッダにも送信されるメタデータを含めて、html-bodyを投稿経由で送信しています。私は設定ファイルからusername + passwordを読んだ後、JUnit-Testで@TargetRequestFilterを使ってテストクラスにヘッダを追加します。 これは、アプリケーションが異なる層で実行されているためです。すべての層に別のユーザー名+パスワードの組み合わせがあります。そして協定はすべての階層で機能するはずです。また、ユーザーが変更したときには、自分の設定ファイルにほとんど変更を加えたくないだけです。それは、ユーザー名、パスワード、ホスト名、ポートとプロトコルを保持します。pact-jvm複数層の認証をテストする
問題は、毎回新しいpactファイルを作成せずにテストクラスで設定したヘッダーと一致するように、構成ファイルの内容に応じてリクエストのhtml-bodyを操作する必要があります。
私の質問は: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-bodyを変更する必要があります。
...あなたの身体をあなたの認証にHTMLとして送信していますか?あるいは、あなたの認証サービスからHTMLを返していますか? –
私は例を追加しました... – DerKnecht