pvarki / python-rasenmaeher-api

1 stars 0 forks source link

CSR endpoint lacks error handling #28

Closed rambo closed 11 months ago

rambo commented 1 year ago
docker-rasenmaeher-integration-rmnginx-1        | 172.25.0.1 - - [24/Jul/2023:15:26:20 +0000] "POST /api/v1/product/sign_csr HTTP/1.1" 500 21 "-" "go-resty/2.7.0 (https://github.com/go-resty/resty)" "-"
docker-rasenmaeher-integration-rmapi-1          | {"@timestamp":"2023-07-24T15:32:29.108Z","log.level":"debug","message":"Starting new HTTP connection (1): cfssl:8888","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":244,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): cfssl:8888"},"process":{"name":"SpawnProcess-1","pid":29,"thread":{"id":140496605854592,"name":"MainThread"}}}
docker-rasenmaeher-integration-cfssl-1          | 2023/07/24 15:32:29 [INFO] 172.26.0.3:53504 - "POST /api/v1/cfssl/info" 200
docker-rasenmaeher-integration-rmapi-1          | {"@timestamp":"2023-07-24T15:32:29.110Z","log.level":"debug","message":"http://cfssl:8888 \"POST /api/v1/cfssl/info HTTP/1.1\" 200 1700","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":546,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://cfssl:8888 \"POST /api/v1/cfssl/info HTTP/1.1\" 200 1700"},"process":{"name":"SpawnProcess-1","pid":29,"thread":{"id":140496605854592,"name":"MainThread"}}}
docker-rasenmaeher-integration-rmapi-1          | {"@timestamp":"2023-07-24T15:32:29.111Z","log.level":"debug","message":"Starting new HTTP connection (1): cfssl:8888","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":244,"name":"connectionpool.py"},"function":"_new_conn"},"original":"Starting new HTTP connection (1): cfssl:8888"},"process":{"name":"SpawnProcess-1","pid":29,"thread":{"id":140496605854592,"name":"MainThread"}}}
docker-rasenmaeher-integration-cfssl-1          | 2023/07/24 15:32:29 [INFO] signature request received
docker-rasenmaeher-integration-cfssl-1          | 2023/07/24 15:32:29 [WARNING] failed to sign request: {"code":9003,"message":"x509: certificate request contains duplicate requested extensions"}
docker-rasenmaeher-integration-cfssl-1          | 2023/07/24 15:32:29 [INFO] 172.26.0.3:53520 - "POST /api/v1/cfssl/sign" 9003
docker-rasenmaeher-integration-rmapi-1          | {"@timestamp":"2023-07-24T15:32:29.113Z","log.level":"debug","message":"http://cfssl:8888 \"POST /api/v1/cfssl/sign HTTP/1.1\" 400 149","ecs":{"version":"1.6.0"},"log":{"logger":"urllib3.connectionpool","origin":{"file":{"line":546,"name":"connectionpool.py"},"function":"_make_request"},"original":"http://cfssl:8888 \"POST /api/v1/cfssl/sign HTTP/1.1\" 400 149"},"process":{"name":"SpawnProcess-1","pid":29,"thread":{"id":140496605854592,"name":"MainThread"}}}
docker-rasenmaeher-integration-rmapi-1          | INFO:     172.25.0.3:34218 - "POST /api/v1/product/sign_csr HTTP/1.0" 500 Internal Server Error
docker-rasenmaeher-integration-rmapi-1          | ERROR:    Exception in ASGI application
docker-rasenmaeher-integration-rmapi-1          | Traceback (most recent call last):
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/uvicorn/protocols/http/httptools_impl.py", line 419, in run_asgi
docker-rasenmaeher-integration-rmapi-1          |     result = await app(  # type: ignore[func-returns-value]
docker-rasenmaeher-integration-rmapi-1          |              ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/uvicorn/middleware/proxy_headers.py", line 78, in __call__
docker-rasenmaeher-integration-rmapi-1          |     return await self.app(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/fastapi/applications.py", line 289, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await super().__call__(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/applications.py", line 122, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await self.middleware_stack(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 184, in __call__
docker-rasenmaeher-integration-rmapi-1          |     raise exc
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/middleware/errors.py", line 162, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await self.app(scope, receive, _send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 79, in __call__
docker-rasenmaeher-integration-rmapi-1          |     raise exc
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/middleware/exceptions.py", line 68, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await self.app(scope, receive, sender)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 20, in __call__
docker-rasenmaeher-integration-rmapi-1          |     raise e
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/fastapi/middleware/asyncexitstack.py", line 17, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await self.app(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/routing.py", line 718, in __call__
docker-rasenmaeher-integration-rmapi-1          |     await route.handle(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/routing.py", line 276, in handle
docker-rasenmaeher-integration-rmapi-1          |     await self.app(scope, receive, send)
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/starlette/routing.py", line 66, in app
docker-rasenmaeher-integration-rmapi-1          |     response = await func(request)
docker-rasenmaeher-integration-rmapi-1          |                ^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 273, in app
docker-rasenmaeher-integration-rmapi-1          |     raw_response = await run_endpoint_function(
docker-rasenmaeher-integration-rmapi-1          |                    ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/.venv/lib/python3.11/site-packages/fastapi/routing.py", line 190, in run_endpoint_function
docker-rasenmaeher-integration-rmapi-1          |     return await dependant.call(**values)
docker-rasenmaeher-integration-rmnginx-1        | 172.25.0.1 - - [24/Jul/2023:15:32:29 +0000] "POST /api/v1/product/sign_csr HTTP/1.1" 500 21 "-" "go-resty/2.7.0 (https://github.com/go-resty/resty)" "-"
docker-rasenmaeher-integration-rmapi-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/app/src/rasenmaeher_api/web/api/product/views.py", line 57, in return_ca_and_sign_csr
docker-rasenmaeher-integration-rmapi-1          |     certificate = await sign_csr(certs.csr)
docker-rasenmaeher-integration-rmapi-1          |                   ^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          |   File "/app/src/rasenmaeher_api/web/api/product/views.py", line 45, in sign_csr
docker-rasenmaeher-integration-rmapi-1          |     data = response.json().get("result").get("certificate")
docker-rasenmaeher-integration-rmapi-1          |            ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
docker-rasenmaeher-integration-rmapi-1          | AttributeError: 'NoneType' object has no attribute 'get'
rambo commented 11 months ago

Fixes in #51