swagger-ui icon indicating copy to clipboard operation
swagger-ui copied to clipboard

remove X-Requested-With: XMLHttpRequest header

Open lion7 opened this issue 1 year ago • 2 comments

Description

This PR effectively reverts the changes of PR https://github.com/swagger-api/swagger-ui/pull/4934 (or more specific the commit https://github.com/swagger-api/swagger-ui/commit/937c8f6208f3adf713b10a349a82a1b129bd0ffd).

Motivation and Context

As described in more detail in issue https://github.com/swagger-api/swagger-ui/issues/6081, the use of the X-Requested-With header triggers a preflight on most authentication backends. Most authentication endpoints do not implement CORS, and when they do the header X-Requested-With is not in the list of allowed headers.

Note that the motivation of the original PR that introduced this change seems to be debatable. The popup shown in the screenshots there seem to be caused by a backend sending a WWW-Authenticate header, which is kind of weird.

Fixes #6081

How Has This Been Tested?

Running the latest swagger-ui with Dex IDP (https://dexidp.io/). My browser fails to fetch the token after going through the authorization code flow. Replacing swagger-ui with a local build of this PR results in successful authentication.

Screenshots (if appropriate):

Checklist

My PR contains...

  • [ ] No code changes (src/ is unmodified: changes to documentation, CI, metadata, etc.)
  • [ ] Dependency changes (any modification to dependencies in package.json)
  • [x] Bug fixes (non-breaking change which fixes an issue)
  • [ ] Improvements (misc. changes to existing features)
  • [ ] Features (non-breaking change which adds functionality)

My changes...

  • [ ] are breaking changes to a public API (config options, System API, major UI change, etc).
  • [ ] are breaking changes to a private API (Redux, component props, utility functions, etc.).
  • [ ] are breaking changes to a developer API (npm script behavior changes, new dev system dependencies, etc).
  • [x] are not breaking changes.

Documentation

  • [x] My changes do not require a change to the project documentation.
  • [ ] My changes require a change to the project documentation.
  • [ ] If yes to above: I have updated the documentation accordingly.

Automated tests

  • [ ] My changes can not or do not need to be tested.
  • [x] My changes can and should be tested by unit and/or integration tests.
  • [ ] If yes to above: I have added tests to cover my changes.
  • [ ] If yes to above: I have taken care to cover edge cases in my tests.
  • [?] All new and existing tests passed.

lion7 avatar Mar 20 '23 18:03 lion7

Is it still supposed to merge?

mosinve avatar Mar 27 '24 14:03 mosinve

Well that would be cool to merge this since it is still a blocker since 2024.

syl20bnr avatar May 17 '24 03:05 syl20bnr