csharp.libraries.generichost.HttpSigningToken.mustache Maven / Gradle / Ivy
//
{{partial_header}}
{{#nrt}}
#nullable enable
{{/nrt}}
using System;
using System.Linq;
using System.Threading;
using System.Threading.Tasks;
namespace {{packageName}}.{{clientPackage}}
{
///
/// A token constructed from an HttpSigningConfiguration
///
{{>visibility}} class HttpSignatureToken : TokenBase
{
private HttpSigningConfiguration _configuration;
///
/// Constructs an HttpSignatureToken object.
///
///
///
public HttpSignatureToken(HttpSigningConfiguration configuration, TimeSpan? timeout = null) : base(timeout)
{
_configuration = configuration;
}
///
/// Places the token in the header.
///
///
///
///
public void UseInHeader(System.Net.Http.HttpRequestMessage request, string requestBody, CancellationToken cancellationToken = default{{^netstandard20OrLater}}(System.Threading.CancellationToken){{/netstandard20OrLater}})
{
var signedHeaders = _configuration.GetHttpSignedHeader(request, requestBody, cancellationToken);
foreach (var signedHeader in signedHeaders)
request.Headers.Add(signedHeader.Key, signedHeader.Value);
}
}
}