Exemple #1
0
        private bool IsValidRequest(TwilioWebhookBindingModel twilioAuthenticationBindingModel)
        {
            var signature = twilioAuthenticationBindingModel.Headers[_twilioHeader];
            var form      = twilioAuthenticationBindingModel.Form;

            var requestUri = twilioAuthenticationBindingModel.DisplayUrl;

            return(_requestValidator.Validate(requestUri, form, signature));
        }
Exemple #2
0
        public async Task ProcessSmsResponseWebHookHttpTriggerOrchestrator([HttpTrigger(AuthorizationLevel.Anonymous, "POST", Route = "smsWebHook")] HttpRequest httpRequest, [DurableClient] IDurableOrchestrationClient client, ILogger log)
        {
            var bindingModel = new TwilioWebhookBindingModel
            {
                Body       = await httpRequest.ReadAsStringAsync(),
                DisplayUrl = UriHelper.GetDisplayUrl(httpRequest),
                Form       = httpRequest.Form.ToNameValueCollection().ToDictionary(),
                Headers    = httpRequest.Headers.ToDictionary(k => k.Key, v => v.Value.ToString())
            };

            await client.StartNewAsync(BugrReminderApiFunctionNames.ProcessSmsResponseWebHookOrchestrationTrigger, bindingModel);

            log.LogInformation($"Begun {BugrReminderApiFunctionNames.ProcessSmsResponseWebHookOrchestrationTrigger}");
        }
Exemple #3
0
        public async Task <bool> AuthenticateWebHookRequest(TwilioWebhookBindingModel twilioAuthenticationBindingModel)
        {
            var twilioAuthToken = await _secretClient.GetSecretValueAsync(_secretKeySettings.TwilioAuthToken);

            _requestValidator = new RequestValidator(twilioAuthToken);

            var isNotValidRequest = !IsValidRequest(twilioAuthenticationBindingModel);

            if (isNotValidRequest)
            {
                throw new SmsWebHookAuthenticationException("Unable to authenticate webhook request");
            }

            return(true);
        }