def check_signed_params(self, jwt_data):
"""
Decodes the params, makes sure they pass signature (i.e., are valid),
and then checks that we haven't seen the msgid before. Raises a
ValueError if errors, else returns True.
TODO(matt): this particular method seems to be unused (not so the one
in federer_handlers.config.config).
"""
s = itsdangerous.JSONWebSignatureSerializer(self.conf['bts_secret'])
try:
data = s.loads(jwt_data)
except itsdangerous.BadSignature:
logger.error("Bad jwt 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
common.py 文件源码
python
阅读 20
收藏 0
点赞 0
评论 0
评论列表
文章目录