diff options
author | Florian Dold <florian@dold.me> | 2021-03-01 23:25:21 +0100 |
---|---|---|
committer | Florian Dold <florian@dold.me> | 2021-03-01 23:25:21 +0100 |
commit | e29a6603fd830338742d295b426728cfd7c9c4af (patch) | |
tree | ca60f138b4a7a9e2765571c197b165ce41e0e009 /src/backend/taler-merchant-httpd.c | |
parent | c18d676333c148a3c9fb5eea75089c1cff599c21 (diff) | |
download | merchant-e29a6603fd830338742d295b426728cfd7c9c4af.tar.gz merchant-e29a6603fd830338742d295b426728cfd7c9c4af.tar.bz2 merchant-e29a6603fd830338742d295b426728cfd7c9c4af.zip |
towards updated auth API (tests still missing)
Diffstat (limited to 'src/backend/taler-merchant-httpd.c')
-rw-r--r-- | src/backend/taler-merchant-httpd.c | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/src/backend/taler-merchant-httpd.c b/src/backend/taler-merchant-httpd.c index 7f9f8e3b..0690e621 100644 --- a/src/backend/taler-merchant-httpd.c +++ b/src/backend/taler-merchant-httpd.c @@ -49,6 +49,7 @@ #include "taler-merchant-httpd_private-patch-orders-ID-forget.h" #include "taler-merchant-httpd_private-patch-products-ID.h" #include "taler-merchant-httpd_private-post-instances.h" +#include "taler-merchant-httpd_private-post-instances-ID-auth.h" #include "taler-merchant-httpd_private-post-orders.h" #include "taler-merchant-httpd_private-post-orders-ID-refund.h" #include "taler-merchant-httpd_private-post-products.h" @@ -1053,6 +1054,14 @@ url_handler (void *cls, in the code... */ .max_upload = 1024 * 1024 * 8 }, + /* POST /auth: */ + { + .url_prefix = "/auth", + .method = MHD_HTTP_METHOD_POST, + .handler = &TMH_private_post_instances_ID_auth, + /* Body should be pretty small. */ + .max_upload = 1024 * 1024, + }, /* GET /products: */ { .url_prefix = "/products", @@ -1494,8 +1503,8 @@ url_handler (void *cls, { /* Override default instance access control */ TMH_compute_auth (default_auth, - &hc->instance->settings.auth_salt, - &hc->instance->settings.auth_hash); + &hc->instance->auth.auth_salt, + &hc->instance->auth.auth_hash); GNUNET_free (default_auth); } } @@ -1677,8 +1686,8 @@ url_handler (void *cls, (NULL == default_auth) ) auth_ok = (GNUNET_OK == TMH_check_auth (auth, - &def_instance->settings.auth_salt, - &def_instance->settings.auth_hash)); + &def_instance->auth.auth_salt, + &def_instance->auth.auth_hash)); /* Only permit 'default' auth if we are either working with the default instance OR patching/deleting an instance OR have no instance */ if ( (hc->rh->handler != &TMH_private_patch_instances_ID) && @@ -1691,8 +1700,8 @@ url_handler (void *cls, if (NULL != hc->instance) auth_ok |= (GNUNET_OK == TMH_check_auth (auth, - &hc->instance->settings.auth_salt, - &hc->instance->settings.auth_hash)); + &hc->instance->auth.auth_salt, + &hc->instance->auth.auth_hash)); if (! auth_ok) { if (auth_malformed) @@ -1777,6 +1786,7 @@ add_instance_cb (void *cls, const struct TALER_MerchantPublicKeyP *merchant_pub, const struct TALER_MerchantPrivateKeyP *merchant_priv, const struct TALER_MERCHANTDB_InstanceSettings *is, + const struct TALER_MERCHANTDB_InstanceAuthSettings *ias, unsigned int accounts_length, const struct TALER_MERCHANTDB_AccountDetails accounts[]) { @@ -1786,6 +1796,7 @@ add_instance_cb (void *cls, GNUNET_assert (NULL != merchant_priv); mi = GNUNET_new (struct TMH_MerchantInstance); mi->settings = *is; + mi->auth = *ias; mi->settings.id = GNUNET_strdup (mi->settings.id); mi->settings.name = GNUNET_strdup (mi->settings.name); mi->settings.address = json_incref (mi->settings.address); |