Skip to content

Conversation

@ThorstenHans
Copy link

As described in #262 Azure Container Registry returns the access token using the access_token field instead of the token field. With this commit, the token could be fetched from both fields

Azure Container Registry returns the access token using the `access_token` field instead of the `token` field. With this commit, the token could be fetched from both fields

Signed-off-by: Thorsten Hans <[email protected]>
In contrast to ACR, Docker Hub responds with `token` and `access_token` which is not supported by the alias attribute provided by serde. That is why I came up with a dedicated struct deserializing both fields into an Option<String> the TryFrom<> implementation first tries to use the token property (as it was before this PR). If that is not present, it tries to take the access_token property. If both are missing, a corresponding error is thrown

Signed-off-by: Thorsten Hans <[email protected]>
@ThorstenHans
Copy link
Author

Upon further testing I discovered that Docker Hub returns both fields token and access_token in the response. I know that the name of the added struct (AzureBearerAuth) is not optimal. But using an intermediate struct allowed me to successfully authenticate against both Docker Hub and ACR.

@vrutkovs
Copy link
Contributor

cc @PratikMahajan

@ThorstenHans
Copy link
Author

Renamed the struct from AzureBearerAuth to MultiTokenBearerAuth which is a bit more meaningful

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.

3 participants