gnunet-svn
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[libeufin] branch master updated: handling 'bad gateway' at Nexus


From: gnunet
Subject: [libeufin] branch master updated: handling 'bad gateway' at Nexus
Date: Sat, 02 Oct 2021 10:23:17 +0200

This is an automated email from the git hooks/post-receive script.

ms pushed a commit to branch master
in repository libeufin.

The following commit(s) were added to refs/heads/master by this push:
     new df12b5a  handling 'bad gateway' at Nexus
df12b5a is described below

commit df12b5ac933851cda0f5115e5706417b9dc2f917
Author: ms <ms@taler.net>
AuthorDate: Sat Oct 2 10:23:13 2021 +0200

    handling 'bad gateway' at Nexus
---
 .../tech/libeufin/nexus/ebics/EbicsClient.kt       | 31 ++++++++++++++--------
 .../tech/libeufin/nexus/server/NexusServer.kt      |  4 +--
 2 files changed, 21 insertions(+), 14 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
index b04c388..f0242ce 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
@@ -23,6 +23,7 @@
 package tech.libeufin.nexus.ebics
 
 import io.ktor.client.HttpClient
+import io.ktor.client.features.*
 import io.ktor.client.request.post
 import io.ktor.http.HttpStatusCode
 import org.slf4j.Logger
@@ -36,18 +37,29 @@ private val logger: Logger = 
LoggerFactory.getLogger("tech.libeufin.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"
+        HttpStatusCode.InternalServerError,
+        "EBICS (outgoing) document is invalid"
     )
     val response: String = try {
-        this.post<String>(
+        this.post(
             urlString = url,
             block = {
                 this.body = body
             }
         )
-    } catch (e: Exception) {
-        logger.warn("Exception during request", e)
-        throw NexusError(HttpStatusCode.InternalServerError, "Cannot reach the 
bank")
+    } catch (e: ClientRequestException) {
+        logger.error(e.message)
+        throw NexusError(
+            HttpStatusCode.BadGateway,
+            e.message
+        )
+    }
+    catch (e: Exception) {
+        logger.error("Exception during request", e)
+        throw NexusError(
+            HttpStatusCode.BadGateway,
+            e.message ?: "Could not reach the bank"
+        )
     }
     logger.debug("Receiving: $response")
     return response
@@ -238,8 +250,7 @@ suspend fun doEbicsUploadTransaction(
 suspend fun doEbicsHostVersionQuery(client: HttpClient, ebicsBaseUrl: String, 
ebicsHostId: String): EbicsHevDetails {
     val ebicsHevRequest = makeEbicsHEVRequestRaw(ebicsHostId)
     val resp = client.postToBank(ebicsBaseUrl, ebicsHevRequest)
-    val versionDetails = parseEbicsHEVResponse(resp)
-    return versionDetails
+    return parseEbicsHEVResponse(resp)
 }
 
 suspend fun doEbicsIniRequest(
@@ -251,8 +262,7 @@ suspend fun doEbicsIniRequest(
         subscriberDetails.ebicsUrl,
         request
     )
-    val resp = parseAndDecryptEbicsKeyManagementResponse(subscriberDetails, 
respStr)
-    return resp
+    return parseAndDecryptEbicsKeyManagementResponse(subscriberDetails, 
respStr)
 }
 
 suspend fun doEbicsHiaRequest(
@@ -264,8 +274,7 @@ suspend fun doEbicsHiaRequest(
         subscriberDetails.ebicsUrl,
         request
     )
-    val resp = parseAndDecryptEbicsKeyManagementResponse(subscriberDetails, 
respStr)
-    return resp
+    return parseAndDecryptEbicsKeyManagementResponse(subscriberDetails, 
respStr)
 }
 
 
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt 
b/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
index f7e0295..0b6098e 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/server/NexusServer.kt
@@ -149,9 +149,7 @@ fun requireBankConnection(call: ApplicationCall, 
parameterKey: String): NexusBan
     return requireBankConnectionInternal(name)
 }
 
-val client = HttpClient {
-    expectSuccess = false // this way, it does not throw exceptions on != 200 
responses.
-}
+val client = HttpClient { followRedirects = true }
 
 fun serverMain(host: String, port: Int) {
     val server = embeddedServer(Netty, port = port, host = host) {

-- 
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.



reply via email to

[Prev in Thread] Current Thread [Next in Thread]