Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(187)

Side by Side Diff: boto/mturk/notification.py

Issue 8386013: Merging in latest boto. (Closed) Base URL: svn://svn.chromium.org/boto
Patch Set: Redoing vendor drop by deleting and then merging. Created 9 years, 1 month ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch | Annotate | Revision Log
« no previous file with comments | « boto/mturk/connection.py ('k') | boto/mturk/question.py » ('j') | no next file with comments »
Toggle Intra-line Diffs ('i') | Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
OLDNEW
1 # Copyright (c) 2006,2007 Mitch Garnaat http://garnaat.org/ 1 # Copyright (c) 2006,2007 Mitch Garnaat http://garnaat.org/
2 # 2 #
3 # Permission is hereby granted, free of charge, to any person obtaining a 3 # Permission is hereby granted, free of charge, to any person obtaining a
4 # copy of this software and associated documentation files (the 4 # copy of this software and associated documentation files (the
5 # "Software"), to deal in the Software without restriction, including 5 # "Software"), to deal in the Software without restriction, including
6 # without limitation the rights to use, copy, modify, merge, publish, dis- 6 # without limitation the rights to use, copy, modify, merge, publish, dis-
7 # tribute, sublicense, and/or sell copies of the Software, and to permit 7 # tribute, sublicense, and/or sell copies of the Software, and to permit
8 # persons to whom the Software is furnished to do so, subject to the fol- 8 # persons to whom the Software is furnished to do so, subject to the fol-
9 # lowing conditions: 9 # lowing conditions:
10 # 10 #
(...skipping 56 matching lines...) Expand 10 before | Expand all | Expand 10 after
67 param = str(ed['param']) 67 param = str(ed['param'])
68 if n not in events_dict: 68 if n not in events_dict:
69 events_dict[n] = {} 69 events_dict[n] = {}
70 events_dict[n][param] = v 70 events_dict[n][param] = v
71 for n in events_dict: 71 for n in events_dict:
72 self.events.append(Event(events_dict[n])) 72 self.events.append(Event(events_dict[n]))
73 73
74 def verify(self, secret_key): 74 def verify(self, secret_key):
75 """ 75 """
76 Verifies the authenticity of a notification message. 76 Verifies the authenticity of a notification message.
77
78 TODO: This is doing a form of authentication and
79 this functionality should really be merged
80 with the pluggable authentication mechanism
81 at some point.
77 """ 82 """
78 verification_input = NotificationMessage.SERVICE_NAME + NotificationMess age.OPERATION_NAME + self.timestamp 83 verification_input = NotificationMessage.SERVICE_NAME
79 signature_calc = self._auth_handler.sign_string(verification_input) 84 verification_input += NotificationMessage.OPERATION_NAME
85 verification_input += self.timestamp
86 h = hmac.new(key=secret_key, digestmod=sha)
87 h.update(verification_input)
88 signature_calc = base64.b64encode(h.digest())
80 return self.signature == signature_calc 89 return self.signature == signature_calc
81 90
82 class Event: 91 class Event:
83 def __init__(self, d): 92 def __init__(self, d):
84 self.event_type = d['EventType'] 93 self.event_type = d['EventType']
85 self.event_time_str = d['EventTime'] 94 self.event_time_str = d['EventTime']
86 self.hit_type = d['HITTypeId'] 95 self.hit_type = d['HITTypeId']
87 self.hit_id = d['HITId'] 96 self.hit_id = d['HITId']
88 if 'AssignmentId' in d: # Not present in all event types 97 if 'AssignmentId' in d: # Not present in all event types
89 self.assignment_id = d['AssignmentId'] 98 self.assignment_id = d['AssignmentId']
90 99
91 #TODO: build self.event_time datetime from string self.event_time_str 100 #TODO: build self.event_time datetime from string self.event_time_str
92 101
93 def __repr__(self): 102 def __repr__(self):
94 return "<boto.mturk.notification.Event: %s for HIT # %s>" % (self.event_ type, self.hit_id) 103 return "<boto.mturk.notification.Event: %s for HIT # %s>" % (self.event_ type, self.hit_id)
OLDNEW
« no previous file with comments | « boto/mturk/connection.py ('k') | boto/mturk/question.py » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698