diff --git a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs index b1e83c0c8..afcc2578e 100644 --- a/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs +++ b/src/modules/Elsa.Http/Activities/SendHttpRequestBase.cs @@ -57,12 +57,15 @@ public abstract class SendHttpRequestBase : Activity /// The Authorization header value to send with the request. /// /// Bearer {some-access-token} - [Input( - Description = "The Authorization header value to send with the request. For example: Bearer {some-access-token}", - Category = "Security" - )] + [Input(Description = "The Authorization header value to send with the request. For example: Bearer {some-access-token}", Category = "Security")] public Input Authorization { get; set; } = default!; + /// + /// A value that allows to add the Authorization header without validation. + /// + [Input(Description = "A value that allows to add the Authorization header without validation.", Category = "Security")] + public Input DisableAuthorizationHeaderValidation { get; set; } = default!; + /// /// The headers to send along with the request. /// @@ -154,9 +157,13 @@ public abstract class SendHttpRequestBase : Activity var request = new HttpRequestMessage(new HttpMethod(method), url); var headers = context.GetHeaders(RequestHeaders); var authorization = Authorization.GetOrDefault(context); + var addAuthorizationWithoutValidation = DisableAuthorizationHeaderValidation.GetOrDefault(context); if (!string.IsNullOrWhiteSpace(authorization)) - request.Headers.Authorization = AuthenticationHeaderValue.Parse(authorization); + if(addAuthorizationWithoutValidation) + request.Headers.TryAddWithoutValidation("Authorization", authorization); + else + request.Headers.Authorization = AuthenticationHeaderValue.Parse(authorization); foreach (var header in headers) request.Headers.Add(header.Key, header.Value.AsEnumerable());