View Issue Details

IDProjectCategoryView StatusLast Update
0006699Talermechant backendpublic2021-09-02 18:23
ReporterFlorian Dold Assigned ToChristian Grothoff  
PriorityhighSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.8Fixed in Version0.8 
Summary0006699: merchant falsely claims that denomination isn't audited
DescriptionThis issue can be reliably reproduced with a wallet integration test. It occurs when the URL for the trusted exchange configured in the merchant configuration differs from the exchange base URL used by in the wallet (and thus sent in the /pay request).

The underlying issue is likely *not* the different base URL, but that the merchant requests the exchange's /keys information *during* the /pay request, as opposed to during startup.

The merchant gives the following response to the wallet's /pay request:

{
        "hint": "The denomination key used for payment is not audited by an auditor approved by the merchant.",
        "code": 2152,
        "h_denom_pub": "6B70V0DFPJ9ZTNZEQV6CYYBM4TZ0EFF744D731N5632QSHKV4WZ8K8Z4FYPQS6BNAX1YQENWDN0GPGHHP6DCPXHZEDAS1T4RFQG8QVG"
}

Note that the exchange_keys field is missing.

What's wrong here is that:
1. The error message claims that the *auditing* is the problem, when exchange trust is the problem
2. The merchant claims that the denomination is "bad", when it didn't even finish obtaining the keys from the exchange yet.
Steps To Reproduce$ taler-wallet-cli testing run-integrationtests merchant-exchange-confusion
TagsNo tags attached.

Activities

Florian Dold

2021-01-14 02:00

manager   ~0017344

This *looks* like a weird corner case, but it means in practice that the merchant will respond with an HTTP 400 (i.e. a permanent error) each time it's seeing a new exchange (or the same exchange via a different base URL).

Christian Grothoff

2021-01-15 12:40

manager   ~0017352

4a5eb61..4bbb29f forces a re-download of /keys also if the auditor DK check fails. Alas, this does NOT fix the issue. But I don't understand the report yet.

Christian Grothoff

2021-01-15 13:58

manager   ~0017353

The real issue here is that the exchange /keys reply is bogus/fails, and the merchant blames the wallet (400) instead of the exchange (502). So we need to check the status code of /keys and generate the right http code.

Christian Grothoff

2021-01-16 14:25

manager   ~0017357

The _real_ real issue is that the merchant doesn't like the base URL being different due to the proxy, even though it explicitly trusts the master_pub.

Christian Grothoff

2021-01-16 18:38

manager   ~0017358

Fixed in 4bbb29f..2c5a245

Christian Grothoff

2021-09-02 18:23

manager   ~0018363

Fix committed to master branch.

Related Changesets

merchant: master 2c5a2454

2021-01-16 18:37:32

Christian Grothoff

Details Diff
fix 0006699: trust peers if master_pub is in trust set, do not require base URL to match Affected Issues
0006699
mod - src/backend/taler-merchant-httpd_exchanges.c Diff File
mod - src/backend/taler-merchant-httpd_post-orders-ID-pay.c Diff File

Issue History

Date Modified Username Field Change
2021-01-14 01:57 Florian Dold New Issue
2021-01-14 01:57 Florian Dold Status new => assigned
2021-01-14 01:57 Florian Dold Assigned To => Christian Grothoff
2021-01-14 02:00 Florian Dold Note Added: 0017344
2021-01-15 12:40 Christian Grothoff Note Added: 0017352
2021-01-15 13:58 Christian Grothoff Note Added: 0017353
2021-01-16 14:25 Christian Grothoff Note Added: 0017357
2021-01-16 18:38 Christian Grothoff Status assigned => resolved
2021-01-16 18:38 Christian Grothoff Resolution open => fixed
2021-01-16 18:38 Christian Grothoff Fixed in Version => 0.9
2021-01-16 18:38 Christian Grothoff Note Added: 0017358
2021-01-16 18:38 Christian Grothoff Product Version => git (master)
2021-01-16 18:38 Christian Grothoff Target Version => 0.9
2021-07-30 13:57 Christian Grothoff Fixed in Version 0.9 => 0.8.1
2021-07-30 13:59 Christian Grothoff Target Version 0.9 => 0.8.1
2021-07-30 14:02 Christian Grothoff Fixed in Version 0.8.1 => 0.8
2021-07-30 14:02 Christian Grothoff Target Version 0.8.1 => 0.8
2021-08-24 16:23 Christian Grothoff Status resolved => closed
2021-09-02 18:22 Christian Grothoff Changeset attached => Taler-merchant master 2c5a2454
2021-09-02 18:23 Christian Grothoff Note Added: 0018363