Fix CORS OPTIONS Requests Blocked by JWT Middleware #47
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR fixes a critical issue where CORS preflight requests (OPTIONS method) were being blocked by the JWT authentication middleware with
401 Unauthorized, preventing browser-based applications from accessing the gateway APIs.Problem
/mem/events,/a2a/tasks/send, and other endpoints were blockedAuthorizationheadersOPTIONS /mem/events?limit=10 HTTP/1.1" 401 UnauthorizedSolution
Added OPTIONS method handling to
middleware/auth.pyto allow CORS preflight requests to pass through without authentication:Key Changes
middleware/auth.py: Addedif request.method == "OPTIONS":check before JWT validationmain.py(development) andattach-gateway(production) entry pointsTesting
Before fix:
After fix:
Test commands:
🔍 Technical Details
CORS Preflight Flow:
OPTIONSrequest (noAuthorizationheader)AuthorizationheaderPrevious behavior: Step 1 failed with 401
New behavior: Step 1 succeeds, Step 4 still requires authentication ✅
Verification
main.pyandattach-gatewaybehave identicallyImpact