Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

URL containing new line character (%0A) causes an error 500 #1970

Open
boubou191911 opened this issue Sep 2, 2024 · 1 comment
Open

URL containing new line character (%0A) causes an error 500 #1970

boubou191911 opened this issue Sep 2, 2024 · 1 comment

Comments

@boubou191911
Copy link

Description

When a parameter in the request URL contains a new line character encoded as %0A in the URL, connexion framework issues an erro 500.
Ex: POST http://127.0.0.1:8000/greeting/e%0Aric

Expected behaviour

The URL parameter should be parsed.

Actual behaviour

Error in getting the URL parser.
RuntimeError("Working outside of operation context. Make sure your app is wrapped in a ContextMiddleware and you're processing a request while accessing the context.")
Traceback (most recent call last):
File "/opt/conda/envs/historian/lib/python3.12/site-packages/starlette/_exception_handler.py", line 53, in wrapped_app
await app(scope, receive, sender)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/swagger_ui.py", line 222, in call
await self.router(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/starlette/routing.py", line 756, in call
await self.middleware_stack(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/starlette/routing.py", line 806, in app
await self.default(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/swagger_ui.py", line 235, in default_fn
await self.app(original_scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/routing.py", line 154, in call
await self.router(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/starlette/routing.py", line 756, in call
await self.middleware_stack(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/starlette/routing.py", line 806, in app
await self.default(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/routing.py", line 48, in call
await self.next_app(original_scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/abstract.py", line 261, in call
await self.app(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/abstract.py", line 261, in call
await self.app(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/abstract.py", line 261, in call
await self.app(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/lifespan.py", line 26, in call
await self.next_app(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/middleware/abstract.py", line 261, in call
await self.app(scope, receive, send)
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/apps/flask.py", line 151, in call
return await self.asgi_app(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/a2wsgi/wsgi.py", line 165, in call
return await responder(scope, receive, send)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/a2wsgi/wsgi.py", line 200, in call
await self.loop.run_in_executor(
File "/opt/conda/envs/historian/lib/python3.12/concurrent/futures/thread.py", line 58, in run
result = self.fn(*self.args, **self.kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/a2wsgi/wsgi.py", line 256, in wsgi
iterable = self.app(environ, start_response)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/flask/app.py", line 1476, in wsgi_app
response = self.handle_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/flask/app.py", line 1473, in wsgi_app
response = self.full_dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/flask/app.py", line 882, in full_dispatch_request
rv = self.handle_user_exception(e)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/flask/app.py", line 880, in full_dispatch_request
rv = self.dispatch_request()
^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/flask/app.py", line 865, in dispatch_request
return self.ensure_sync(self.view_functions[rule.endpoint])(**view_args) # type: ignore[no-any-return]
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/apps/flask.py", line 68, in call
return self.fn(*args, **kwargs)
^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/decorators/main.py", line 132, in wrapper
request = self.framework.get_request(uri_parser=self.uri_parser)
^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/connexion/decorators/main.py", line 72, in uri_parser
uri_parser_class = self.uri_parser_class or operation.uri_parser_class
^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/werkzeug/local.py", line 318, in get
obj = instance._get_current_object()
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "/opt/conda/envs/historian/lib/python3.12/site-packages/werkzeug/local.py", line 519, in _get_current_object
raise RuntimeError(unbound_message) from None
RuntimeError: Working outside of operation context. Make sure your app is wrapped in a ContextMiddleware and you're processing a request while accessing the context.
INFO: 127.0.0.1:56016 - "POST /greeting/e%0Aric HTTP/1.1" 500 Internal Server Error

Steps to reproduce

Simply run the quick start app of the documentation (https://connexion.readthedocs.io/en/latest/quickstart.html)
and post /greeting/e%0Aric

Additional info:

Output of the commands:

  • python --version
  • Python 3.12.4
  • pip show connexion | grep "^Version\:"
  • Version: 3.1.0
@juhoinkinen
Copy link

Duplicate of #1908.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants