[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.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: handling 'bad gateway' at Nexus,
gnunet <=