def setUp(self): username = self.username = '******' password = self.password = '******' email = self.email = '*****@*****.**' jane = self.jane = User.objects.create_user(username, email, password) resource = self.resource = Resource(name='photos', url='/api/v1/user/jane/') resource.save() CONSUMER_KEY = self.CONSUMER_KEY = 'dpf43f3p2l4k3l03' CONSUMER_SECRET = self.CONSUMER_SECRET = 'kd94hf93k423kf44' consumer = self.consumer = Consumer(key=CONSUMER_KEY, secret=CONSUMER_SECRET, name='printer.example.com', user=jane) consumer.save() self.callback_token = self.callback = 'http://printer.example.com/request_token_ready' self.callback_confirmed = True self.request_token_parameters = { 'oauth_consumer_key': self.CONSUMER_KEY, 'oauth_signature_method': 'PLAINTEXT', 'oauth_signature': '%s&' % self.CONSUMER_SECRET, 'oauth_timestamp': str(int(time.time())), 'oauth_nonce': 'requestnonce', 'oauth_version': '1.0', 'oauth_callback': self.callback, 'scope': 'photos', # custom argument to specify Protected Resource } self.c = Client()
def create_consumer(name, description, owner_userid, admin_contact, permissions): """ Create a new Consumer with all of the info we need recorded. Arguments: (name, description, owner_userid, admin_contact, permissions) Could be rolled into a form+view in /sysadmin/, but how many could there possibly be? """ assert set(permissions) <= set(PERMISSION_OPTIONS.keys( )), 'Permissions must be chosen from PERMISSION_CHOICES.' User = get_user_model() c = Consumer(name=name, description=description, status=ACCEPTED, user=User.objects.get(username=owner_userid), xauth_allowed=False) c.generate_random_codes() c.save() i = ConsumerInfo(consumer=c) i.admin_contact = admin_contact i.permissions = list(permissions) i.save() print "Consumer key:", c.key print "Consumer secret:", c.secret
def setUp(self): jane = User.objects.create_user('jane', '*****@*****.**', 'toto') self.resource = Resource(name='photos', url='/oauth/photo/') self.resource.save() self.CONSUMER_KEY = 'dpf43f3p2l4k3l03' self.CONSUMER_SECRET = 'kd94hf93k423kf44' self.consumer = Consumer(key=self.CONSUMER_KEY, secret=self.CONSUMER_SECRET, name='printer.example.com', user=jane) self.consumer.save()
def setUp(self): self.client = Client() self.username = '******' self.email = '*****@*****.**' self.password = '******' self.user = User.objects.create_user(self.username, self.email, self.password) # OAuth requirements self.resource = Resource(name='data', url='/') self.resource.save() self.CONSUMER_KEY = 'dpf43f3p2l4k3l03' self.CONSUMER_SECRET = 'kd94hf93k423kf44' self.consumer = Consumer(key=self.CONSUMER_KEY, secret=self.CONSUMER_SECRET, name='api.example.com', user=self.user) self.consumer.save()
def setup_func(): #from http://code.google.com/p/nose-gae/issues/detail?id=13 os.environ['SERVER_NAME'] = 'localhost' os.environ['SERVER_PORT'] = '8080' os.environ['AUTH_DOMAIN'] = 'example.org' os.environ['USER_EMAIL'] = '' os.environ['USER_ID'] = '' resource = Resource(name='default', url='/oauth/photo/') resource.put() consumer = Consumer(key_=CONSUMER_KEY, secret=CONSUMER_SECRET, name='printer.example.com') consumer.put()
def setUp(self): self.username = '******' self.password = '******' self.email = '*****@*****.**' self.jane = User.objects.create_user(self.username, self.email, self.password) self.scope = Scope.objects.create(name='photos', url='/oauth/photo/') self.CONSUMER_KEY = 'dpf43f3p2l4k3l03' self.CONSUMER_SECRET = 'kd94hf93k423kf44' consumer = self.consumer = Consumer(key=self.CONSUMER_KEY, secret=self.CONSUMER_SECRET, name='printer.example.com', user=self.jane) consumer.save() self.callback_token = self.callback = 'http://printer.example.com/request_token_ready' self.callback_confirmed = True self.c = Client()
def setUp(self): self.faketime = 525942870 self.client = Client() # create a Consumer (and associated stuff) try: u = User.objects.get(username='******') except User.DoesNotExist: u = User(username='******') u.save() try: c = Consumer.objects.get(name='Test Consumer') except Consumer.DoesNotExist: c = Consumer(name='Test Consumer') c.description = 'Consumer to do some tests with' c.status = ACCEPTED c.user = u c.xauth_allowed = False c.generate_random_codes() c.save() self.consumer = c i = ConsumerInfo(consumer=c) i.admin_contact = '*****@*****.**' i.permissions = ['courses'] i.timestamp = self.faketime - 10 # make sure the ConsumerInfo was there "before" the Token was created i.save() self.consumerinfo = i # create an access token so we can jump in to requests try: t = Token.objects.get(token_type=Token.ACCESS, consumer=c, user=u) except Token.DoesNotExist: t = Token(token_type=Token.ACCESS, consumer=c, user=u, timestamp=self.faketime) t.is_approved = True t.generate_random_codes() t.verifier = VERIFIER t.save() self.token = t
def create_consumer(): ConsumerInfo.objects.filter(consumer__key=KEY).delete() Consumer.objects.filter(key=KEY).delete() c = Consumer(name='Example Consumer', description='Consumer to do some demos with', status=ACCEPTED, user=User.objects.get(username='******'), xauth_allowed=False, key=KEY, secret=SECRET) #c.generate_random_codes() c.save() i = ConsumerInfo(consumer=c) i.admin_contact = '*****@*****.**' i.permissions = ['courses', 'grades'] i.save() return c
from oauth_provider.models import Resource,Consumer from oauth_provider.consts import ACCEPTED default_consumer = Consumer(name="Tomboy default consumer", description="Tomboy default consumer", key_ = 'anyone', secret = 'anyone', status = ACCEPTED ) default_consumer.put() default_resource = Resource(name="default") default_resource.put()
def test_oauth_workflow(self): request_token_url = 'http://testserver' + reverse( 'api:oauth_request_token') authorize_token_url = 'http://testserver' + reverse( 'api:oauth_user_authorization') # create consumer for tests c = Client() c.login_user('ggbaker') c.logout() consumer = Consumer(name='Test Consumer', description='Consumer to do some tests with', status=ACCEPTED, user=User.objects.get(username='******'), xauth_allowed=False) consumer.generate_random_codes() consumer.save() ci = ConsumerInfo(consumer=consumer) ci.admin_contact = '*****@*****.**' ci.permissions = ['courses', 'grades'] ci.save() # generate request token oauth_request = oauth.Request.from_consumer_and_token( consumer, http_url=request_token_url, parameters={'oauth_callback': 'oob'}) oauth_request.sign_request(oauth.SignatureMethod_HMAC_SHA1(), consumer, None) resp = c.get(request_token_url, **oauth_request.to_header()) self.assertEqual(resp.status_code, 200) request_token = dict( urllib.parse.parse_qsl(resp.content.decode('utf8'))) # get auth verifier c.login_user('ggbaker') resp = c.get(authorize_token_url, {'oauth_token': request_token['oauth_token']}) self.assertEqual(resp.status_code, 200) resp = c.post(authorize_token_url, { 'oauth_token': request_token['oauth_token'], 'authorize_access': 'on' }) self.assertEqual(resp.status_code, 200) parser = etree.HTMLParser() root = etree.fromstring(resp.content, parser=parser) verifier_elt = root.xpath('//*[@id="verifier"]')[0] oauth_verifier = verifier_elt.text.strip() c.logout() # get access token token = oauth.Token(request_token['oauth_token'], request_token['oauth_token_secret']) token.set_verifier(oauth_verifier) oauth_request = oauth.Request.from_consumer_and_token( consumer, token, http_url=authorize_token_url) oauth_request.sign_request(oauth.SignatureMethod_HMAC_SHA1(), consumer, token) resp = c.get(authorize_token_url, **oauth_request.to_header())