Esempio n. 1
0
    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()
Esempio n. 2
0
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
Esempio n. 3
0
    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()
Esempio n. 5
0
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()
Esempio n. 6
0
    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()
Esempio n. 7
0
    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
Esempio n. 9
0
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()
Esempio n. 10
0
    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())