taldir

Directory service to resolve wallet mailboxes by messenger addresses
Log | Files | Refs | Submodules | README | LICENSE

commit bd6fbe8b9c77be9c33a4951a270f2a6020625018
parent 22f0457b1be0ecb09b48938c2f7bd2be8a2aa1e1
Author: Martin Schanzenbach <schanzen@gnunet.org>
Date:   Mon, 11 Jul 2022 19:47:35 +0200

404 if validation unknown

Diffstat:
Mpkg/rest/taldir.go | 20+++++++++++++++++---
1 file changed, 17 insertions(+), 3 deletions(-)

diff --git a/pkg/rest/taldir.go b/pkg/rest/taldir.go @@ -492,11 +492,25 @@ func (t *Taldir) configResponse(w http.ResponseWriter, r *http.Request) { func (t *Taldir) validationPage(w http.ResponseWriter, r *http.Request) { vars := mux.Vars(r) - w.Header().Set("Content-Type", "text/html; charset=utf-8") var walletLink string - walletLink = "taler://taldir/" + vars["h_address"] + "/" + vars["challenge"] + "-wallet" var png []byte - png, err := qrcode.Encode(walletLink, qrcode.Medium, 256) + var validation Validation + + // Setup validation object. Retrieve object from DB if it already + // exists. + h := sha512.New() + h.Write([]byte(vars["h_address"])) + h_address := util.EncodeBinaryToString(h.Sum(nil)) + err := t.Db.First(&validation, "h_address = ?", h_address).Error + w.Header().Set("Content-Type", "text/html; charset=utf-8") + if err != nil { + // This validation does not exist. + w.WriteHeader(404) + return + } + + walletLink = "taler://taldir/" + vars["h_address"] + "/" + vars["challenge"] + "-wallet" + png, err = qrcode.Encode(walletLink, qrcode.Medium, 256) if err != nil { w.WriteHeader(500) return