/// <summary> /// A <see cref="DelegatingHandler"/> that injects an HMAC Authorization Header into the request. /// </summary> /// <param name="options">The <see cref="IOptions{TOptions}"/> which should return <see cref="HmacOptions"/>.</param> /// <param name="hashProviderFactory"><see cref="IHashProviderFactory" /> that returns <see cref="IHashProvider" />.</param> /// <param name="signatureProvider">The <see cref="IHmacSignatureProvider" />.</param> public HmacDelegatingHandler( IOptions <HmacOptions> options, IHashProviderFactory hashProviderFactory, IHmacSignatureProvider signatureProvider) { _options = options; _hashProviderFactory = hashProviderFactory; _signatureProvider = signatureProvider; }
/// <summary> /// <see cref="AuthenticationHandler{TOptions}"/> using Hmac. /// </summary> public HmacAuthenticationHandler( IOptionsMonitor <HmacRequirement> optionsMonitor, ILoggerFactory logger, UrlEncoder encoder, ISystemClock clock, IHmacOptionsProvider hmacOptionsProvider, IHashProviderFactory signatureProviderFactory, IHmacSignatureProvider hmacSignatureProvider) : base(optionsMonitor, logger, encoder, clock) { _hmacOptionsProvider = hmacOptionsProvider; _signatureProviderFactory = signatureProviderFactory; _hmacSignatureProvider = hmacSignatureProvider; _logger = logger.CreateLogger <HmacAuthenticationHandler>(); }