diff options
author | Christian Poessinger <christian@poessinger.com> | 2022-04-08 07:10:31 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-08 07:10:31 +0200 |
commit | 5399a8f75b5a44dd789101844d52b5f9c4e301f9 (patch) | |
tree | e943d2dbdf44e454f7d0d91d3a7c7a0f7f522b67 | |
parent | 44c67e54ef6ecdf4d7b62e765ccfa4e724c14316 (diff) | |
parent | 84bfac85a711d22d97e1ee39a5233738e14a7750 (diff) | |
download | vyos-1x-5399a8f75b5a44dd789101844d52b5f9c4e301f9.tar.gz vyos-1x-5399a8f75b5a44dd789101844d52b5f9c4e301f9.zip |
Merge pull request #1277 from jestabro/api-smoketest
T4347: Bug fix and extension of HTTP smoketest
-rw-r--r-- | data/templates/https/nginx.default.tmpl | 13 | ||||
-rwxr-xr-x | smoketest/scripts/cli/test_service_https.py | 6 | ||||
-rwxr-xr-x | src/services/vyos-http-api-server | 2 |
3 files changed, 7 insertions, 14 deletions
diff --git a/data/templates/https/nginx.default.tmpl b/data/templates/https/nginx.default.tmpl index e8511bd62..a51505270 100644 --- a/data/templates/https/nginx.default.tmpl +++ b/data/templates/https/nginx.default.tmpl @@ -53,19 +53,6 @@ server { } error_page 497 =301 https://$host:{{ server.port }}$request_uri; - error_page 501 502 503 =200 @50*_json; - -{% if api_set %} - location @50*_json { - default_type application/json; - return 200 '{"error": "service https api unavailable at this proxy address: set service https api-restrict virtual-host"}'; - } -{% else %} - location @50*_json { - default_type application/json; - return 200 '{"error": "Start service in configuration mode: set service https api"}'; - } -{% endif %} } diff --git a/smoketest/scripts/cli/test_service_https.py b/smoketest/scripts/cli/test_service_https.py index 2901cafa8..9413d22d1 100755 --- a/smoketest/scripts/cli/test_service_https.py +++ b/smoketest/scripts/cli/test_service_https.py @@ -106,6 +106,7 @@ class TestHTTPSService(VyOSUnitTestSHIM.TestCase): port = '443' name = 'localhost' + self.cli_set(base_path + ['api', 'socket']) key = 'MySuperSecretVyOS' self.cli_set(base_path + ['api', 'keys', 'id', 'key-01', 'key', key]) @@ -132,5 +133,10 @@ class TestHTTPSService(VyOSUnitTestSHIM.TestCase): # Must get HTTP code 401 on invalid key (Unauthorized) self.assertEqual(r.status_code, 401) + payload_no_key = {'data': '{"op": "showConfig", "path": []}'} + r = request('POST', url, verify=False, headers=headers, data=payload_no_key) + # Must get HTTP code 401 on missing key (Unauthorized) + self.assertEqual(r.status_code, 401) + if __name__ == '__main__': unittest.main(verbosity=2) diff --git a/src/services/vyos-http-api-server b/src/services/vyos-http-api-server index 1000d8b72..c1b595412 100755 --- a/src/services/vyos-http-api-server +++ b/src/services/vyos-http-api-server @@ -352,7 +352,7 @@ class MultipartRoute(APIRoute): return error(e.status_code, e.detail) except Exception as e: if request.ERR_MISSING_KEY: - return error(422, "Valid API key is required") + return error(401, "Valid API key is required") if request.ERR_MISSING_DATA: return error(422, "Non-empty data field is required") if request.ERR_NOT_JSON: |