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:
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