【发布时间】:2016-03-09 23:08:42
【问题描述】:
当 Twilio 调用回调方法来获取语音的 TwiML
我需要验证实际请求是否来自 Twilio。
我在 Tomcat 上运行了一个简单的 war 文件,该应用程序是使用 Spring 构建的。
我做了如下的事情:
//Get the TwilioUtils object initialized
TwilioUtils twilioUtils = new TwilioUtils("******myAuthToken");
//Get the URL from HttpRequest
String url = httpRequest.getRequestURL().toString();
Map<String, String> allRequestParams = getAllRequestParams(httpRequest);
Map<String, String> headers = getAllRequestHeaders(httpRequest);
//Get the signature generated for the Url and request parameters
//allRequestParams is a map of all request values posted to my service by Twilio
String validSig = twilioUtils.getValidationSignature(url, allRequestParams);
//Get the x-twilio-signature value from the http header map
String xTwilioSignature = headers.get("x-twilio-signature”);
//This is different from what I get below
logger.info("validSig = " + validSig);
logger.info("xTwilioSignature = " + xTwilioSignature );
//This is always false
logger.info("Signature matched : " + twilioUtils.validateRequest(xTwilioSignature, url,
allRequestParams));
我想知道我做错了什么。我验证“x-twilio-signature”的方法不正确吗?
如果不正确,正确的做法是什么?
我正在使用 Twilio 提供的辅助库类 TwilioUtils 来验证它。
Twilio 的签名始终与我从 TwilioUtils 对象获得的不同。
【问题讨论】:
标签: java validation callback twilio