Skip to content

fix: enable React app cookie authentication for API endpoints#4782

Draft
gcgoncalves wants to merge 1 commit into
epic/ui-rewritefrom
feat/cookie-api-access
Draft

fix: enable React app cookie authentication for API endpoints#4782
gcgoncalves wants to merge 1 commit into
epic/ui-rewritefrom
feat/cookie-api-access

Conversation

@gcgoncalves
Copy link
Copy Markdown
Collaborator

🔗 Issue
Relates to #4269

🚀 Summary
Fixed 401 Unauthorized errors when React app accesses API endpoints (e.g., /teams/) using cookie authentication. Modified RBAC middleware to recognize X-Requested-With: XMLHttpRequest header as valid first-party signal, and changed JWT/CSRF cookie paths from /app to / to allow cookies to be sent to root-level API endpoints.

📓 Notes

  • RBAC middleware now accepts X-Requested-With header + /app referer as proof of first-party origin
  • JWT cookie path changed from /app to / (mcpgateway/routers/app.py:40)
  • CSRF cookie path changed from /app to / (mcpgateway/utils/csrf.py:64)
  • Cookie path scoping to /app was overly restrictive given React app needs to call root-level APIs
  • X-Requested-With recognition is the primary security improvement; cookie path change enables functionality

🔗 Issue
Relates to #4269

🚀 Summary
Fixed 401 Unauthorized errors when React app accesses API endpoints (e.g., /teams/) using cookie authentication. Modified RBAC middleware to recognize X-Requested-With: XMLHttpRequest header as valid first-party signal, and changed
JWT/CSRF cookie paths from /app to / to allow cookies to be sent to root-level API endpoints.

📓 Notes
 - RBAC middleware now accepts X-Requested-With header + /app referer as proof of first-party origin
 - JWT cookie path changed from /app to / (mcpgateway/routers/app.py:40)
 - CSRF cookie path changed from /app to / (mcpgateway/utils/csrf.py:64)
 - Cookie path scoping to /app was overly restrictive given React app needs to call root-level APIs
 - X-Requested-With recognition is the primary security improvement; cookie path change enables functionality

Signed-off-by: Gabriel Costa <[email protected]>
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

Successfully merging this pull request may close these issues.

1 participant