libeufin

Integration and sandbox testing for FinTech APIs and data formats
Log | Files | Refs | Submodules | README | LICENSE

commit 70ab380cd9ae28f81bc0dbbf07e6d47c6af839dc
parent 3c68a5ffe0402c11b4dcf5652c6967a27fb56ad4
Author: Antoine A <>
Date:   Fri, 24 Jan 2025 09:38:18 +0100

common: fix parsing subject with percent decoding

Diffstat:
Mcommon/src/main/kotlin/Subject.kt | 2+-
Mcommon/src/test/kotlin/SubjectTest.kt | 4+++-
2 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/common/src/main/kotlin/Subject.kt b/common/src/main/kotlin/Subject.kt @@ -124,7 +124,7 @@ fun parseIncomingSubject(subject: String): IncomingSubject { // Find and concatenate valid parts of a keys val parts = mutableListOf(0) val concatenated = StringBuilder() - for (match in ALPHA_NUMBERIC_PATTERN.findAll(subject)) { + for (match in ALPHA_NUMBERIC_PATTERN.findAll(subject.replace("%20", " "))) { concatenated.append(match.value); parts.add(concatenated.length); } diff --git a/common/src/test/kotlin/SubjectTest.kt b/common/src/test/kotlin/SubjectTest.kt @@ -67,6 +67,7 @@ class SubjectTest { "left $L-$R right", "left $L+$R right", "left $L\n$R right", + "left $L%20$R right", "left $L-+\n$R right", "left $L - $R right", "left $L + $R right", @@ -147,7 +148,8 @@ class SubjectTest { "Taler TEGY6d9mh9pgwvwpgs0z0095z854xegfy7j j202yd0esp8p0za60" to "TEGY6d9mh9pgwvwpgs0z0095z854xegfy7jj202yd0esp8p0za60", "00Q979QSMJ29S7BJT3DDAVC5A0DR5Z05B7N 0QT1RCBQ8FXJPZ6RG" to "00Q979QSMJ29S7BJT3DDAVC5A0DR5Z05B7N0QT1RCBQ8FXJPZ6RG", "Taler NDDCAM9XN4HJZFTBD8V6FNE2FJE8G Y734PJ5AGQMY06C8D4HB3Z0" to "NDDCAM9XN4HJZFTBD8V6FNE2FJE8GY734PJ5AGQMY06C8D4HB3Z0", - "KYCVEEXTBXBEMCS5R64C24GFNQVWBN5R2F9QSQ7PN8QXAP1NG4NG" to "KYCVEEXTBXBEMCS5R64C24GFNQVWBN5R2F9QSQ7PN8QXAP1NG4NG" + "KYCVEEXTBXBEMCS5R64C24GFNQVWBN5R2F9QSQ7PN8QXAP1NG4NG" to "KYCVEEXTBXBEMCS5R64C24GFNQVWBN5R2F9QSQ7PN8QXAP1NG4NG", + "Taler%20NDDCAM9XN4HJZFTBD8V6FNE2FJE8G Y734PJ5AGQMY06C8D4HB3Z0" to "NDDCAM9XN4HJZFTBD8V6FNE2FJE8GY734PJ5AGQMY06C8D4HB3Z0", )) { assertEquals( IncomingSubject.Reserve(EddsaPublicKey(key)),