From bd39feb34fb7a814379381732a7ac7087b4ac012 Mon Sep 17 00:00:00 2001 From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com> Date: Fri, 5 Jun 2026 11:13:51 +0000 Subject: [PATCH 1/4] Bump aiohttp from 3.13.5 to 3.14.0 in /jwtproxy --- updated-dependencies: - dependency-name: aiohttp dependency-version: 3.14.0 dependency-type: direct:production ... Signed-off-by: dependabot[bot] --- jwtproxy/requirements.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jwtproxy/requirements.txt b/jwtproxy/requirements.txt index 403e8902..83fb3470 100644 --- a/jwtproxy/requirements.txt +++ b/jwtproxy/requirements.txt @@ -1,4 +1,4 @@ -aiohttp==3.13.5 +aiohttp==3.14.0 aiosignal==1.4.0 async-timeout==5.0.1 attrs==26.1.0 From d934e7c4d251f5a564cdaf942278bb191f5e47d1 Mon Sep 17 00:00:00 2001 From: Pieter Stokkink Date: Mon, 8 Jun 2026 10:43:31 +0200 Subject: [PATCH 2/4] optimize build --- jwtproxy/Dockerfile.dev | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/jwtproxy/Dockerfile.dev b/jwtproxy/Dockerfile.dev index 326d21a3..24acf550 100644 --- a/jwtproxy/Dockerfile.dev +++ b/jwtproxy/Dockerfile.dev @@ -11,7 +11,6 @@ RUN apt-get update && apt-get install nginx -y COPY supervisord.conf /etc WORKDIR /app -COPY src ./ COPY nginx/nginx.conf /etc/nginx/nginx.conf COPY nginx/server.conf /etc/nginx/conf.d/server.conf COPY pyproject.toml . @@ -20,5 +19,6 @@ COPY requirements.txt . RUN pip install supervisor RUN pip install -r requirements_dev.txt +COPY src ./ ENTRYPOINT [ "/bin/sh", "-c", "nginx -g 'daemon on;'; adev runserver /app/server.py -p 8081 --app-factory main;"] From 6ef4d5c377382c36dee98d58a77aa0fa91a2b2b6 Mon Sep 17 00:00:00 2001 From: Pieter Stokkink Date: Mon, 8 Jun 2026 10:44:19 +0200 Subject: [PATCH 3/4] update packages, replace aioresponses with aiointercept recommended by https://github.com/aio-libs/aiohttp/issues/12815 --- jwtproxy/requirements.txt | 2 +- jwtproxy/requirements_dev.txt | 4 ++-- jwtproxy/src/tests/conftest.py | 6 +++--- 3 files changed, 6 insertions(+), 6 deletions(-) diff --git a/jwtproxy/requirements.txt b/jwtproxy/requirements.txt index 83fb3470..3903c251 100644 --- a/jwtproxy/requirements.txt +++ b/jwtproxy/requirements.txt @@ -1,4 +1,4 @@ -aiohttp==3.14.0 +aiohttp==3.14.1 aiosignal==1.4.0 async-timeout==5.0.1 attrs==26.1.0 diff --git a/jwtproxy/requirements_dev.txt b/jwtproxy/requirements_dev.txt index 0f56332a..08c4dc0c 100644 --- a/jwtproxy/requirements_dev.txt +++ b/jwtproxy/requirements_dev.txt @@ -1,7 +1,7 @@ -r requirements.txt aiohttp-devtools==1.1.2 -aioresponses==0.7.8 +aiointercept==0.1.5 anyio==3.7.1 asttokens==2.4.1 black==26.5.1 @@ -11,7 +11,7 @@ executing==2.2.1 pre-commit==4.6.0 Pygments==2.20.0 pytest==9.0.3 -pytest-aiohttp==1.1.0 +pytest-aiohttp==1.1.1 ruff==0.15.14 six==1.17.0 sniffio==1.3.1 diff --git a/jwtproxy/src/tests/conftest.py b/jwtproxy/src/tests/conftest.py index c2511328..8726c5c4 100644 --- a/jwtproxy/src/tests/conftest.py +++ b/jwtproxy/src/tests/conftest.py @@ -1,6 +1,6 @@ import os -import aioresponses +import aiointercept import pytest from ..server import main @@ -29,6 +29,6 @@ def set_env(): @pytest.fixture -def mock_upstream(): - with aioresponses.aioresponses(passthrough_unmatched=True) as m: +async def mock_upstream(): + async with aiointercept.aiointercept(mock_external_urls=True) as m: yield m From bc021aa6fd720a478332236edc584ddc0461f782 Mon Sep 17 00:00:00 2001 From: Pieter Stokkink Date: Mon, 8 Jun 2026 10:46:38 +0200 Subject: [PATCH 4/4] pop host from upstream request headers before passing along --- jwtproxy/src/server.py | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/jwtproxy/src/server.py b/jwtproxy/src/server.py index f3cac150..b0543e3e 100755 --- a/jwtproxy/src/server.py +++ b/jwtproxy/src/server.py @@ -250,8 +250,11 @@ async def handle(req: web.Request): if req.can_read_body: body = await req.text() app_logger.debug("Request body: \n %s", body) + + upstream_headers = req.headers.copy() + upstream_headers.pop("Host", None) async with SessionManager.session().request( - req.method, target_url, headers=req.headers, params=req.rel_url.query, data=body + req.method, target_url, headers=upstream_headers, params=req.rel_url.query, data=body ) as resp: app_logger.debug("Response status from upstream: %s", resp.status) app_logger.debug("Headers from upstream: \n %s", resp.headers)