def check_signed_params(self, jwt_data):
"""Checks a JWT signature and message ID.
Decodes the params, makes sure they pass signature (i.e., are valid),
and then checks that we haven't seen the msgid before.
TODO(matt): refactor as this was copied from federer_handlers.common.
Inheriting from common as before does not work because CI
cannot import ESL, an import that comes from
freeswitch_interconnect.
Raises:
ValueError if there are errors
Returns:
True if everything checks out
"""
s = itsdangerous.JSONWebSignatureSerializer(self.conf['bts_secret'])
try:
data = s.loads(jwt_data)
except itsdangerous.BadSignature:
logger.emergency("Bad signature for request, ignoring.")
raise ValueError("Bad signature")
# Make sure the msg hasn't been seen before, if so, discard it.
if "msgid" in data:
if self.msgid_db.seen(str(data['msgid'])):
logger.error("Endaga: Repeat msgid: %s" % (data['msgid'],))
raise ValueError("Repeat msgid: %s" % (data['msgid'],))
else:
logger.error("Endaga: No message ID.")
raise ValueError("No message ID.")
return data
config.py 文件源码
python
阅读 19
收藏 0
点赞 0
评论 0
评论列表
文章目录