Skip to content

Commit

Permalink
#33 Add UseSignatureParser convenience methods.
Browse files Browse the repository at this point in the history
  • Loading branch information
David Lievrouw committed Mar 6, 2021
1 parent 81d9e14 commit c4a8317
Showing 1 changed file with 36 additions and 0 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -18,5 +18,41 @@ public static partial class Extensions {

return builder;
}

/// <summary>Configures HTTP message signature verification to use the specified <see cref="ISignatureParser" />.</summary>
/// <param name="builder">The <see cref="IHttpMessageSigningVerificationBuilder" /> that is used to configure verification.</param>
/// <typeparam name="TSignatureParser">The type of the <see cref="ISignatureParser" /> that is to be used.</typeparam>
/// <returns>The <see cref="IHttpMessageSigningVerificationBuilder" /> that can be used to continue configuring the verification settings.</returns>
[ExcludeFromCodeCoverage]
public static IHttpMessageSigningVerificationBuilder UseSignatureParser<TSignatureParser>(this IHttpMessageSigningVerificationBuilder builder)
where TSignatureParser : ISignatureParser {
return builder.UseSignatureParser(provider => provider.GetRequiredService<TSignatureParser>());
}

/// <summary>Configures HTTP message signature verification to use the specified <see cref="ISignatureParser" />.</summary>
/// <param name="builder">The <see cref="IHttpMessageSigningVerificationBuilder" /> that is used to configure verification.</param>
/// <param name="signatureParser">The <see cref="ISignatureParser" /> that is to be used.</param>
/// <returns>The <see cref="IHttpMessageSigningVerificationBuilder" /> that can be used to continue configuring the verification settings.</returns>
[ExcludeFromCodeCoverage]
public static IHttpMessageSigningVerificationBuilder UseSignatureParser(this IHttpMessageSigningVerificationBuilder builder, ISignatureParser signatureParser) {
if (signatureParser == null) throw new ArgumentNullException(nameof(signatureParser));

return builder.UseSignatureParser(provider => signatureParser);
}

/// <summary>Configures HTTP message signature verification to use the specified <see cref="ISignatureParser" />.</summary>
/// <param name="builder">The <see cref="IHttpMessageSigningVerificationBuilder" /> that is used to configure verification.</param>
/// <param name="signatureParserFactory">The factory that creates the <see cref="ISignatureParser" /> that is to be used.</param>
/// <returns>The <see cref="IHttpMessageSigningVerificationBuilder" /> that can be used to continue configuring the verification settings.</returns>
[ExcludeFromCodeCoverage]
public static IHttpMessageSigningVerificationBuilder UseSignatureParser(
this IHttpMessageSigningVerificationBuilder builder,
Func<IServiceProvider, ISignatureParser> signatureParserFactory) {
if (signatureParserFactory == null) throw new ArgumentNullException(nameof(signatureParserFactory));

builder.Services.AddSingleton(signatureParserFactory);

return builder;
}
}
}

0 comments on commit c4a8317

Please sign in to comment.