Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

[Bug]: AuthorizationHeaderValueGetter is ignored unless particular overload of RestService.For is used. #1761

Open
Greenscreener opened this issue Jul 23, 2024 · 0 comments
Labels

Comments

@Greenscreener
Copy link

Describe the bug 🐞

When generating the interface implementation using any other way than a few particular overloads of the RestService.For method, AuthorizationHeaderValueGetter supplied in RefitSettings is quietly ignored. This is caused by the fact that RestService only injects the handler chain with a AuthenticatedHttpClientHandler when it creates its own httpClient, not when such client is supplied by the user.

This is not documented anywhere, even though running into this issue must be fairly common, after a quick search, I can find one such example from 2018: #573

There are a few ways I can see this being remediated:

  1. When receiving an httpClient from the user, the AuthorizationHeaderValueGetter should get injected into the handler chain.
  2. The AuthorizationHeaderValueGetter should be made public, so that you can pass it as an inner handler to your custom client.
  3. At the very least this should be documented somewhere.

Step to reproduce

  1. Use a particular overload of RestService.For (e. g. this one) or any overload of services.AddRefitClient
  2. Supply an AuthorizationHeaderValueGetter in RefitSettings
  3. Create a request with [Headers("Authorization: Bearer")]

Reproduction repository

No response

Expected behavior

The delegate stored in AuthorizationHeaderValueGetter should get called and the returned token should be put into the Authorization header. This is silently ignored.

Screenshots 🖼️

No response

IDE

No response

Operating system

No response

Version

No response

Device

No response

Refit Version

No response

Additional information ℹ️

No response

KleinPan pushed a commit to KleinPan/matrix-dotnet that referenced this issue Aug 31, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

1 participant