[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[libeufin] branch master updated: fix HEV
From: |
gnunet |
Subject: |
[libeufin] branch master updated: fix HEV |
Date: |
Sun, 24 May 2020 14:00:48 +0200 |
This is an automated email from the git hooks/post-receive script.
dold pushed a commit to branch master
in repository libeufin.
The following commit(s) were added to refs/heads/master by this push:
new 8f42737 fix HEV
8f42737 is described below
commit 8f42737140df0f8bc57b7de3774ffe5fdcc09ced
Author: Florian Dold <address@hidden>
AuthorDate: Sun May 24 17:30:43 2020 +0530
fix HEV
---
nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt | 42 ++++++++++++++++++++++-
util/src/main/kotlin/Ebics.kt | 23 +++++++++----
2 files changed, 58 insertions(+), 7 deletions(-)
diff --git a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
index 74559ef..17074d7 100644
--- a/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
+++ b/nexus/src/main/kotlin/tech/libeufin/nexus/Main.kt
@@ -22,6 +22,7 @@ package tech.libeufin.nexus
import com.fasterxml.jackson.core.util.DefaultIndenter
import com.fasterxml.jackson.core.util.DefaultPrettyPrinter
import com.fasterxml.jackson.databind.JsonNode
+import com.fasterxml.jackson.databind.ObjectMapper
import com.fasterxml.jackson.databind.SerializationFeature
import com.fasterxml.jackson.databind.exc.MismatchedInputException
import com.fasterxml.jackson.module.kotlin.KotlinModule
@@ -627,7 +628,33 @@ fun serverMain() {
call.respond(BankConnectionsList(connList))
}
- post("/bank-connections/{connid}/backup") {
+ get("/bank-connections/{connid}") {
+ val resp = transaction {
+ val user = authenticateRequest(call.request)
+ val conn = requireBankConnection(call, "connid")
+ if (conn.type != "ebics") {
+ throw NexusError(
+ HttpStatusCode.BadRequest,
+ "bank connection is not of type 'ebics' (but
'${conn.type}')"
+ )
+ }
+ val ebicsSubscriber =
getEbicsSubscriberDetails(user.id.value, conn.id.value)
+ val mapper = ObjectMapper()
+ val details = mapper.createObjectNode()
+ details.put("ebicsUrl", ebicsSubscriber.ebicsUrl)
+ details.put("ebicsHostId", ebicsSubscriber.hostId)
+ details.put("partnerId", ebicsSubscriber.partnerId)
+ details.put("userId", ebicsSubscriber.userId)
+ val node = mapper.createObjectNode()
+ node.put("type", conn.type)
+ node.put("owner", conn.owner.id.value)
+ node.set<JsonNode>("details", details)
+ node
+ }
+ call.respond(resp)
+ }
+
+ post("/bank-connections/{connid}/export-backup") {
throw NotImplementedError()
}
@@ -664,6 +691,19 @@ fun serverMain() {
call.respond(resp)
}
+ post("/bank-connections/{connid}/ebics/send-hev") {
+ val subscriber = transaction {
+ val user = authenticateRequest(call.request)
+ val conn = requireBankConnection(call, "connid")
+ if (conn.type != "ebics") {
+ throw NexusError(HttpStatusCode.BadRequest, "bank
connection is not of type 'ebics'")
+ }
+ getEbicsSubscriberDetails(user.id.value, conn.id.value)
+ }
+ val resp = doEbicsHostVersionQuery(client,
subscriber.ebicsUrl, subscriber.hostId)
+ call.respond(resp)
+ }
+
post("/bank-connections/{connid}/ebics/send-hpb") {
val subscriberDetails = transaction {
val user = authenticateRequest(call.request)
diff --git a/util/src/main/kotlin/Ebics.kt b/util/src/main/kotlin/Ebics.kt
index 589edbc..0f62082 100644
--- a/util/src/main/kotlin/Ebics.kt
+++ b/util/src/main/kotlin/Ebics.kt
@@ -237,8 +237,14 @@ fun createEbicsRequestForDownloadInitialization(
subscriberDetails.hostId,
getNonce(128),
DatatypeFactory.newInstance().newXMLGregorianCalendar(GregorianCalendar()),
- subscriberDetails.bankEncPub ?: throw
UtilError(HttpStatusCode.BadRequest, "Invalid subscriber state 'bankEncPub'
missing, please send HPB first"),
- subscriberDetails.bankAuthPub ?: throw
UtilError(HttpStatusCode.BadRequest, "Invalid subscriber state 'bankAuthPub'
missing, please send HPB first"),
+ subscriberDetails.bankEncPub ?: throw UtilError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankEncPub' missing, please send HPB
first"
+ ),
+ subscriberDetails.bankAuthPub ?: throw UtilError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state 'bankAuthPub' missing, please send HPB
first"
+ ),
orderType,
makeOrderParams(orderParams)
)
@@ -296,13 +302,14 @@ enum class EbicsReturnCode(val errorCode: String) {
EBICS_DOWNLOAD_POSTPROCESS_DONE("011000"),
EBICS_DOWNLOAD_POSTPROCESS_SKIPPED("011001"),
EBICS_TX_SEGMENT_NUMBER_UNDERRUN("011101"),
+ EBICS_INVALID_USER_OR_USER_STATE("091002"),
EBICS_NO_DOWNLOAD_DATA_AVAILABLE("090005");
companion object {
fun lookup(errorCode: String): EbicsReturnCode {
for (x in values()) {
if (x.errorCode == errorCode) {
- return x;
+ return x
}
}
throw UtilError(HttpStatusCode.InternalServerError, "Unknown EBICS
status code: $errorCode")
@@ -395,7 +402,10 @@ fun parseAndValidateEbicsResponse(
if (!XMLUtil.verifyEbicsDocument(
responseDocument,
- subscriberDetails.bankAuthPub ?: throw
UtilError(HttpStatusCode.BadRequest, "Invalid subscriber state: bankAuthPub
missing, please send HPB first")
+ subscriberDetails.bankAuthPub ?: throw UtilError(
+ HttpStatusCode.BadRequest,
+ "Invalid subscriber state: bankAuthPub missing, please send
HPB first"
+ )
)
) {
throw UtilError(HttpStatusCode.InternalServerError, "Bank's signature
validation failed")
@@ -442,7 +452,7 @@ fun getDecryptionKey(subscriberDetails:
EbicsClientSubscriberDetails, pubDigest:
if (pubDigest.contentEquals(encPubDigest)) {
return subscriberDetails.customerEncPriv
}
- throw UtilError(HttpStatusCode.NotFound,"Could not find customer's public
key")
+ throw UtilError(HttpStatusCode.NotFound, "Could not find customer's public
key")
}
/**
@@ -489,8 +499,9 @@ fun makeEbicsHEVRequest(subscriberDetails:
EbicsClientSubscriberDetails): String
}
fun makeEbicsHEVRequestRaw(hostID: String): String {
+ val h = hostID
val req = HEVRequest().apply {
- hostId = hostId
+ hostId = h
}
val doc = XMLUtil.convertJaxbToDocument(req)
return XMLUtil.convertDomToString(doc)
--
To stop receiving notification emails like this one, please contact
address@hidden.
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [libeufin] branch master updated: fix HEV,
gnunet <=