-
Notifications
You must be signed in to change notification settings - Fork 119
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'dependabot/npm_and_yarn/src/KafkaFlow.Admin.Dashboard/C…
…lientApp/webpack-dev-middleware-and-angular-builders/custom-webpack-and-angular-devkit/build-angular-6.1.2' of https://github.com/Farfetch/kafkaflow into dependabot/npm_and_yarn/src/KafkaFlow.Admin.Dashboard/ClientApp/webpack-dev-middleware-and-angular-builders/custom-webpack-and-angular-devkit/build-angular-6.1.2
- Loading branch information
Showing
10 changed files
with
310 additions
and
94 deletions.
There are no files selected for viewing
26 changes: 26 additions & 0 deletions
26
src/KafkaFlow.Abstractions/Authentication/IOAuthBearerAuthenticator.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,26 @@ | ||
using System.Collections.Generic; | ||
|
||
namespace KafkaFlow.Authentication; | ||
|
||
/// <summary> | ||
/// Authentication handler for OAuth Bearer. | ||
/// </summary> | ||
public interface IOAuthBearerAuthenticator | ||
{ | ||
/// <summary> | ||
/// Set SASL/OAUTHBEARER token and metadata. The SASL/OAUTHBEARER token refresh callback or event handler should invoke this method upon | ||
/// success. The extension keys must not include the reserved key "`auth`", and all extension keys and values must conform to the required | ||
/// format as per https://tools.ietf.org/html/rfc7628#section-3.1. | ||
/// </summary> | ||
/// <param name="tokenValue">The mandatory token value to set, often (but not necessarily) a JWS compact serialization as per https://tools.ietf.org/html/rfc7515#section-3.1</param> | ||
/// <param name="lifetimeMs">When the token expires, in terms of the number of milliseconds since the epoch</param> | ||
/// <param name="principalName">The mandatory Kafka principal name associated with the token</param> | ||
/// <param name="extensions">Optional SASL extensions dictionary, to be communicated to the broker as additional key-value pairs during the initial client response as per https://tools.ietf.org/html/rfc7628#section-3.1</param> | ||
void SetToken(string tokenValue, long lifetimeMs, string principalName, IDictionary<string, string> extensions = null); | ||
|
||
/// <summary> | ||
/// SASL/OAUTHBEARER token refresh failure indicator. The SASL/OAUTHBEARER token refresh callback or event handler should invoke this method upon failure. | ||
/// </summary> | ||
/// <param name="error">Mandatory human readable error reason for failing to acquire a token</param> | ||
void SetTokenFailure(string error); | ||
} |
24 changes: 12 additions & 12 deletions
24
src/KafkaFlow.Abstractions/Configuration/SaslOauthbearerMethod.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 |
---|---|---|
@@ -1,12 +1,12 @@ | ||
namespace KafkaFlow.Configuration | ||
{ | ||
/// <summary>SaslOauthbearerMethod enum values</summary> | ||
public enum SaslOauthbearerMethod | ||
{ | ||
/// <summary>Default</summary> | ||
Default, | ||
|
||
/// <summary>Oidc</summary> | ||
Oidc, | ||
} | ||
} | ||
namespace KafkaFlow.Configuration | ||
{ | ||
/// <summary>SaslOauthbearerMethod enum values</summary> | ||
public enum SaslOauthbearerMethod | ||
{ | ||
/// <summary>Default</summary> | ||
Default, | ||
|
||
/// <summary>Oidc</summary> | ||
Oidc, | ||
} | ||
} |
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 |
---|---|---|
@@ -1,3 +1,6 @@ | ||
using KafkaFlow.Authentication; | ||
using System; | ||
Check warning on line 2 in src/KafkaFlow.Abstractions/Configuration/SecurityInformation.cs GitHub Actions / Test deployment
|
||
|
||
namespace KafkaFlow.Configuration; | ||
|
||
/// <summary> | ||
|
@@ -249,4 +252,9 @@ public class SecurityInformation | |
/// importance: low | ||
/// </summary> | ||
public string SaslOauthbearerScope { get; set; } | ||
} | ||
|
||
/// <summary> | ||
/// Gets or sets the OAuthBearerTokenRefreshHandler for custom OAuth authentication. | ||
/// </summary> | ||
public Action<IOAuthBearerAuthenticator> OAuthBearerTokenRefreshHandler { get; set; } | ||
} |
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,24 @@ | ||
using System.Collections.Generic; | ||
using Confluent.Kafka; | ||
|
||
namespace KafkaFlow.Authentication; | ||
|
||
internal readonly struct OAuthBearerAuthenticator : IOAuthBearerAuthenticator | ||
{ | ||
private readonly IClient _client; | ||
|
||
public OAuthBearerAuthenticator(IClient client) | ||
{ | ||
_client = client; | ||
} | ||
|
||
public void SetToken(string tokenValue, long lifetimeMs, string principalName, IDictionary<string, string> extensions = null) | ||
{ | ||
_client.OAuthBearerSetToken(tokenValue, lifetimeMs, principalName, extensions); | ||
} | ||
|
||
public void SetTokenFailure(string error) | ||
{ | ||
_client.OAuthBearerSetTokenFailure(error); | ||
} | ||
} |
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.