libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 0548af54868dc13014332f0656c6b7aac1881b1f
parent 92dcf07c794da7cd5d6e39c4033d7c78d7c9f052
Author: MS <ms@taler.net>
Date:   Tue,  7 Jul 2020 18:33:53 +0200

nexus validates documents before sending them

Diffstat:
Mnexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt | 3+++
Mnexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt | 3+++
2 files changed, 6 insertions(+), 0 deletions(-)

diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt @@ -31,6 +31,9 @@ import java.util.* private suspend inline fun HttpClient.postToBank(url: String, body: String): String { logger.debug("Posting: $body") + if (!XMLUtil.validateFromString(body)) throw NexusError( + HttpStatusCode.InternalServerError, "EBICS (outgoing) document is invalid" + ) val response: String = try { this.post<String>( urlString = url, diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsNexus.kt @@ -763,6 +763,9 @@ suspend fun submitEbicsPaymentInitiation(httpClient: HttpClient, paymentInitiati endToEndId = paymentInitiation.endToEndId ) ) + if (!XMLUtil.validateFromString(painMessage)) throw NexusError( + HttpStatusCode.InternalServerError, "Pain.001 message is invalid." + ) object { val subscriberDetails = subscriberDetails val painMessage = painMessage