-
Notifications
You must be signed in to change notification settings - Fork 529
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
feat: Add universe domain support for Discovery based libraries.
- The universe domain may be specified through the client service initializer. - A helper method to calculate effective URIs that takes into account the universe domain. This method is to be used by generated code, see googleapis/gapic-generator-csharp#746. - The universe domain is passed as a request option for the credential to validate against when intercepting and before setting the token.
- Loading branch information
1 parent
ae6f8fa
commit ec8fdef
Showing
12 changed files
with
337 additions
and
14 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
67 changes: 67 additions & 0 deletions
67
Src/Support/Google.Apis.Auth/OAuth2/HttpRequestMessageExtensions.cs
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,67 @@ | ||
/* | ||
Copyright 2024 Google Inc | ||
Licensed under the Apache License, Version 2.0(the "License"); | ||
you may not use this file except in compliance with the License. | ||
You may obtain a copy of the License at | ||
http://www.apache.org/licenses/LICENSE-2.0 | ||
Unless required by applicable law or agreed to in writing, software | ||
distributed under the License is distributed on an "AS IS" BASIS, | ||
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | ||
See the License for the specific language governing permissions and | ||
limitations under the License. | ||
*/ | ||
|
||
using System.Net.Http; | ||
|
||
namespace Google.Apis.Auth.OAuth2; | ||
|
||
/// <summary> | ||
/// Extension methods for <see cref="HttpRequestMessage"/>. | ||
/// </summary> | ||
// Note: This class exists in Google.Apis.Core, Google.Apis and Google.Apis.Auth so that we don't expose it | ||
// publicly. Changes need to be made on the three classes at the same time. | ||
// Only the one in Google.Apis is tested. | ||
internal static class HttpRequestMessageExtensions | ||
{ | ||
/// <summary> | ||
/// Sets the given key/value pair as a request option. | ||
/// </summary> | ||
/// <remarks> | ||
/// This method exist mostly to handle the fact that HttpRequestMessage.Options are only available | ||
/// from .NET 5 and up. | ||
/// </remarks> | ||
public static void SetOption<TValue>(this HttpRequestMessage request, string key, TValue value) | ||
{ | ||
#if NET6_0_OR_GREATER | ||
request.Options.Set(new HttpRequestOptionsKey<TValue>(key), value); | ||
#else | ||
request.Properties[key] = value; | ||
#endif | ||
} | ||
|
||
/// <summary> | ||
/// Gets the value associated with the given key on the request options. | ||
/// </summary> | ||
/// <remarks> | ||
/// This method exist mostly to handle the fact that HttpRequestMessage.Options are only available | ||
/// from .NET 5 and up. | ||
/// </remarks> | ||
public static bool TryGetOption<TValue>(this HttpRequestMessage request, string key, out TValue value) | ||
{ | ||
#if NET6_0_OR_GREATER | ||
return request.Options.TryGetValue(new HttpRequestOptionsKey<TValue>(key), out value); | ||
#else | ||
object foundValue = null; | ||
if (request.Properties.TryGetValue(key, out foundValue) && foundValue is TValue tempValue) | ||
{ | ||
value = tempValue; | ||
return true; | ||
} | ||
value = default; | ||
return false; | ||
#endif | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.