def main(): global serializer, name name = 'fetcher' + str(randint(100, 9999)) cfg = load(open('/etc/fetch/fetch.cfg')) server_addr = cfg['server_addr'] serializer = url_serializer(cfg['key']) get_logger().name = name get_logger().setLevel(cfg['log_level']) info('starting up') fg = feed_getter(server_addr, name, serializer) fg.start() fg.join() warn('not sure why we\'re here')
from feedsync import app, g, request, session, abort, \ url_for, feeds from flask.views import MethodView from itsdangerous import URLSafeTimedSerializer as url_serializer, \ BadSignature from hashlib import sha256 from pymongo import Connection # not sure this is thread-safe serializer = url_serializer("234jn13lk1jb4tgk4jg4kljgbq;lfasdFADFASDGj3rb3") fetchers = Connection().sync_db.fetchers def signed_request(args, form): #form = dict(form) signstring = args.get('key') #werkzeug does some weird value munging here, have to undo form = dict([ (x, y) for x, y in form.items() ]) payload = sha256(repr(form)).hexdigest() try: ret = serializer.loads(signstring, max_age=1.5) if payload == ret: return True except BadSignature, e: app.logger.warning('someone tried to pass us a bogus request: %s' % e)