Example #1
0
def get_temporary_token(auth_key, service):
    """
    Transient token for applications.
    TODO(kevinx): 10 second or less active
    """
    # check for collision (very unlikely)
    while True:
        token = get_randomized_chars(48)
        try:
            models.SSOAppToken.objects.get(token=token)
        except models.SSOAppToken.DoesNotExist:
            break

    auth_obj = models.SSOAuthInfo.objects.get(auth_key=auth_key)

    try:
        #auth_obj.token_set.all()
        token_obj = auth_obj.ssoapptoken_set.create(token=token,
                                                    service=service)
    except DatabaseError as e:
        # pass, just store the error (could be "length too large", etc)
        transaction.rollback()
        raise e

    try:
        token_obj.save()
    except IntegrityError as e:
        transaction.rollback()
        raise e

    return token
Example #2
0
def get_authentication_cookie(user_info, service='go_url'):
    # check for collision (very unlikely)
    while True:
        auth_key = get_randomized_chars(64)
        try:
            models.SSOAuthInfo.objects.get(auth_key=auth_key)
        except models.SSOAuthInfo.DoesNotExist:
            # no collision, move on...
            break

    try:
        auth_obj = models.SSOAuthInfo(
            auth_key=auth_key,
            browser='',
            cn=user_info['cn'],
            displayName=user_info['displayName'],
            mail=user_info['mail'],
            objectSid=user_info['objectSid'],
            services=service,
            last_service=service)
    except DatabaseError as e:
        # pass, just store the error (could be "length too large", etc)
        transaction.rollback()
        raise e

    try:
        auth_obj.save()
    except IntegrityError as e:
        transaction.rollback()
        raise e

    return auth_key