Skip to content

Commit fcc9226

Browse files
committed
Return HTTP 403 for invalid Origin headers
Changed the HTTP status code for invalid Origin headers from 400 (Bad Request) to 403 (Forbidden) to better reflect the nature of the error. Invalid origin headers represent an authorization failure rather than a malformed request. Github-Issue: #1398
1 parent c47c767 commit fcc9226

File tree

3 files changed

+3
-3
lines changed

3 files changed

+3
-3
lines changed

src/mcp/server/transport_security.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,6 @@ async def validate_request(self, request: Request, is_post: bool = False) -> Res
122122
# Validate Origin header
123123
origin = request.headers.get("origin")
124124
if not self._validate_origin(origin):
125-
return Response("Invalid Origin header", status_code=400)
125+
return Response("Invalid Origin header", status_code=403)
126126

127127
return None

tests/server/test_sse_security.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -127,7 +127,7 @@ async def test_sse_security_invalid_origin_header(server_port: int):
127127

128128
async with httpx.AsyncClient() as client:
129129
response = await client.get(f"http://127.0.0.1:{server_port}/sse", headers=headers)
130-
assert response.status_code == 400
130+
assert response.status_code == 403
131131
assert response.text == "Invalid Origin header"
132132

133133
finally:

tests/server/test_streamable_http_security.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -155,7 +155,7 @@ async def test_streamable_http_security_invalid_origin_header(server_port: int):
155155
json={"jsonrpc": "2.0", "method": "initialize", "id": 1, "params": {}},
156156
headers=headers,
157157
)
158-
assert response.status_code == 400
158+
assert response.status_code == 403
159159
assert response.text == "Invalid Origin header"
160160

161161
finally:

0 commit comments

Comments
 (0)