[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] 01/06: debug
From: |
gnunet |
Subject: |
[libeufin] 01/06: debug |
Date: |
Wed, 23 Nov 2022 20:06:17 +0100 |
This is an automated email from the git hooks/post-receive script.
ms pushed a commit to branch master
in repository libeufin.
commit 7fb10e97704f964d3338fb9ebb9dc5cc3e63cf80
Author: MS <ms@taler.net>
AuthorDate: Wed Nov 23 19:57:10 2022 +0100
debug
---
.idea/libeufin.iml | 13 +++++++++++++
.idea/runConfigurations/SchedulingTest.xml | 21 +++++++++++++++++++++
nexus/build.gradle | 2 ++
.../main/kotlin/tech/libeufin/nexus/Scheduling.kt | 4 ++--
.../kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt | 5 ++++-
.../tech/libeufin/sandbox/EbicsProtocolBackend.kt | 20 ++++++++++----------
.../src/main/kotlin/tech/libeufin/sandbox/Main.kt | 4 +++-
7 files changed, 55 insertions(+), 14 deletions(-)
diff --git a/.idea/libeufin.iml b/.idea/libeufin.iml
new file mode 100644
index 00000000..186d698a
--- /dev/null
+++ b/.idea/libeufin.iml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module external.linked.project.id="libeufin"
external.linked.project.path="$MODULE_DIR$"
external.root.project.path="$MODULE_DIR$" external.system.id="GRADLE"
external.system.module.group="" external.system.module.version="0.0.1-dev.3"
type="JAVA_MODULE" version="4">
+ <component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_16"
inherit-compiler-output="true">
+ <exclude-output />
+ <content url="file://$MODULE_DIR$">
+ <excludeFolder url="file://$MODULE_DIR$/.gradle" />
+ <excludeFolder url="file://$MODULE_DIR$/build" />
+ <excludeFolder url="file://$MODULE_DIR$/frontend" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ </component>
+</module>
\ No newline at end of file
diff --git a/.idea/runConfigurations/SchedulingTest.xml
b/.idea/runConfigurations/SchedulingTest.xml
new file mode 100644
index 00000000..6b78179c
--- /dev/null
+++ b/.idea/runConfigurations/SchedulingTest.xml
@@ -0,0 +1,21 @@
+<component name="ProjectRunConfigurationManager">
+ <configuration default="false" name="SchedulingTest"
type="GradleRunConfiguration" factoryName="Gradle">
+ <ExternalSystemSettings>
+ <option name="executionName" />
+ <option name="externalProjectPath" value="$PROJECT_DIR$" />
+ <option name="externalSystemIdString" value="GRADLE" />
+ <option name="scriptParameters" value=":nexus:test --tests --quiet
"SchedulingTest"" />
+ <option name="taskDescriptions">
+ <list />
+ </option>
+ <option name="taskNames">
+ <list />
+ </option>
+ <option name="vmOptions" />
+ </ExternalSystemSettings>
+ <ExternalSystemDebugServerProcess>false</ExternalSystemDebugServerProcess>
+
<ExternalSystemReattachDebugProcess>true</ExternalSystemReattachDebugProcess>
+ <DebugAllEnabled>false</DebugAllEnabled>
+ <method v="2" />
+ </configuration>
+</component>
\ No newline at end of file
diff --git a/nexus/build.gradle b/nexus/build.gradle
index 4d4f9041..e5a0affb 100644
--- a/nexus/build.gradle
+++ b/nexus/build.gradle
@@ -61,6 +61,7 @@ dependencies {
// LibEuFin util library
implementation project(":util")
+ implementation project(":sandbox") // for testing
// Logging
implementation 'ch.qos.logback:logback-classic:1.2.5'
@@ -89,6 +90,7 @@ dependencies {
implementation "io.ktor:ktor-server-core:$ktor_version"
implementation "io.ktor:ktor-client-apache:$ktor_version"
implementation "io.ktor:ktor-server-netty:$ktor_version"
+ implementation "io.ktor:ktor-server-test-host:$ktor_version"
implementation "io.ktor:ktor-auth:$ktor_version"
implementation "io.ktor:ktor-jackson:$ktor_version"
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Scheduling.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/Scheduling.kt
index 09c4bcc2..ffcbe43c 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Scheduling.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Scheduling.kt
@@ -60,11 +60,11 @@ private suspend fun runTask(client: HttpClient, sched:
TaskSchedule) {
submitAllPaymentInitiations(client, sched.resourceId)
}
else -> {
- logger.error("task type ${sched.type} not understood")
+ logger.error("task type ${sched.type} not supported")
}
}
}
- else -> logger.error("task on resource ${sched.resourceType} not
understood")
+ else -> logger.error("task on resource ${sched.resourceType} not
supported")
}
} catch (e: Exception) {
logger.error("Exception during task $sched", e)
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 281410d5..e5c78434 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/ebics/EbicsClient.kt
@@ -187,7 +187,10 @@ suspend fun doEbicsDownloadTransaction(
EbicsReturnCode.EBICS_DOWNLOAD_POSTPROCESS_DONE -> {
}
else -> {
- throw NexusError(HttpStatusCode.InternalServerError, "unexpected
return code")
+ throw NexusError(
+ HttpStatusCode.InternalServerError,
+ "unexpected return code:
${ackResponse.technicalReturnCode.name}"
+ )
}
}
return EbicsDownloadSuccessResult(respPayload)
diff --git
a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
index fd3524ad..fcbdc3c0 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/EbicsProtocolBackend.kt
@@ -34,7 +34,6 @@ import org.jetbrains.exposed.exceptions.ExposedSQLException
import org.jetbrains.exposed.sql.*
import org.jetbrains.exposed.sql.SqlExpressionBuilder.eq
import org.jetbrains.exposed.sql.statements.api.ExposedBlob
-import
org.jetbrains.exposed.sql.transactions.experimental.newSuspendedTransaction
import org.jetbrains.exposed.sql.transactions.transaction
import org.w3c.dom.Document
import tech.libeufin.util.*
@@ -152,8 +151,8 @@ suspend fun respondEbicsTransfer(
EbicsHostsTable.hostID.upperCase() eq
call.attributes[EbicsHostIdAttribute]
.uppercase()
}.firstOrNull() ?: throw SandboxError(
- io.ktor.http.HttpStatusCode.InternalServerError,
- "Requested Ebics host ID not found."
+ HttpStatusCode.InternalServerError,
+ "Requested Ebics host ID
(${call.attributes[EbicsHostIdAttribute]}) not found."
)
CryptoUtil.loadRsaPrivateKey(host.authenticationPrivateKey.bytes)
}
@@ -1123,7 +1122,9 @@ private fun
handleEbicsDownloadTransactionTransfer(requestContext: RequestContex
)
}
-
+/**
+ *
+ */
private fun handleEbicsDownloadTransactionInitialization(requestContext:
RequestContext): EbicsResponse {
val orderType =
requestContext.requestObject.header.static.orderDetails?.orderType ?:
throw EbicsInvalidRequestError()
@@ -1149,6 +1150,10 @@ private fun
handleEbicsDownloadTransactionInitialization(requestContext: Request
val totalSize = encodedResponse.length
val numSegments = ((totalSize + segmentSize - 1) / segmentSize)
+ /**
+ * Clarify: the encoded response seems to be returned here
+ * (init phase) AND along the transfer phase.
+ */
EbicsDownloadTransactionEntity.new(transactionID) {
this.subscriber = requestContext.subscriber
this.host = requestContext.ebicsHost
@@ -1163,7 +1168,7 @@ private fun
handleEbicsDownloadTransactionInitialization(requestContext: Request
transactionID,
numSegments,
segmentSize,
- enc,
+ enc, // has customer key
encodedResponse
)
}
@@ -1287,7 +1292,6 @@ private fun makeRequestContext(requestObject:
EbicsRequest): RequestContext {
var downloadTransaction: EbicsDownloadTransactionEntity? = null
var uploadTransaction: EbicsUploadTransactionEntity? = null
val subscriber = if (requestTransactionID != null) {
- // println("finding subscriber by transactionID $requestTransactionID")
downloadTransaction =
EbicsDownloadTransactionEntity.findById(requestTransactionID.uppercase(Locale.getDefault()))
if (downloadTransaction != null) {
downloadTransaction.subscriber
@@ -1344,8 +1348,6 @@ suspend fun ApplicationCall.ebicsweb() {
EbicsHostIdAttribute,
requestedHostID.item(0).textContent
)
- // val requestDocument = receiveEbicsXml()
- // logger.info("Processing ${requestDocument.documentElement.localName}")
when (requestDocument.documentElement.localName) {
"ebicsUnsecuredRequest" -> {
val requestObject =
requestDocument.toObject<EbicsUnsecuredRequest>()
@@ -1370,7 +1372,6 @@ suspend fun ApplicationCall.ebicsweb() {
}
val strResp = XMLUtil.convertJaxbToString(hevResponse)
- logger.debug("HEV response: $strResp")
if (!XMLUtil.validateFromString(strResp)) throw SandboxError(
HttpStatusCode.InternalServerError,
"Outgoing HEV response is invalid"
@@ -1386,7 +1387,6 @@ suspend fun ApplicationCall.ebicsweb() {
}
}
"ebicsRequest" -> {
- // logger.debug("ebicsRequest
${XMLUtil.convertDomToString(requestDocument)}")
val requestObject = requestDocument.toObject<EbicsRequest>()
val responseXmlStr =
transaction(Connection.TRANSACTION_SERIALIZABLE, repetitionAttempts = 10) {
// Step 1 of 3: Get information about the host and subscriber
diff --git a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
index 7e328f67..fcc4dfc6 100644
--- a/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
+++ b/sandbox/src/main/kotlin/tech/libeufin/sandbox/Main.kt
@@ -92,7 +92,7 @@ data class SandboxError(
val statusCode: HttpStatusCode,
val reason: String,
val errorCode: LibeufinErrorCode? = null
-) : Exception()
+) : Exception(reason)
data class SandboxErrorJson(val error: SandboxErrorDetailJson)
data class SandboxErrorDetailJson(val type: String, val description: String)
@@ -975,6 +975,8 @@ val sandboxApp: Application.() -> Unit = {
throw EbicsProcessingError("Serving EBICS threw unmanaged
UtilError: ${e.reason}")
}
catch (e: SandboxError) {
+ val payload: String = e.message ?: e.stackTraceToString()
+ logger.info(payload)
// Should translate to EBICS error code.
when (e.errorCode) {
LibeufinErrorCode.LIBEUFIN_EC_INVALID_STATE -> throw
EbicsProcessingError("Invalid bank state.")
--
To stop receiving notification emails like this one, please contact
gnunet@gnunet.org.
- [libeufin] branch master updated (1f70330a -> 39ece551), gnunet, 2022/11/23
- [libeufin] 03/06: Nexus tests., gnunet, 2022/11/23
- [libeufin] 04/06: comment, gnunet, 2022/11/23
- [libeufin] 01/06: debug,
gnunet <=
- [libeufin] 05/06: moving code, gnunet, 2022/11/23
- [libeufin] 02/06: remove newline, gnunet, 2022/11/23
- [libeufin] 06/06: EBICS payload prepare helper., gnunet, 2022/11/23