Beispiel #1
0
def return_challenge(request):
    """
    :param request: request
    :return: perform signed challenge check
    """
    # get request data

    data = json.loads(request.body)
    challenge = data.get('challenge', None)
    signature = data.get('signature', None)
    public_key = data.get('publicKey', None)
    ripple_address = data.get('ripple_address', None)
    username = data.get('username', None)

    challenge_sign_params = os.path.join(
        os.path.dirname(__file__),
        'static/js/verify_challenge/challenge_sign_params.js'
    )
    verify_challenge = os.path.join(
        os.path.dirname(__file__),
        'static/js/verify_challenge/verify_challenge.js'
    )

    # Write received sign params to js file
    logger.info('Writing sign params to js')
    f = open(challenge_sign_params, 'w+b')
    f.write(SIGN_PARAMS % (challenge, signature, public_key))
    f.close()

    stderr, stdout = node_run(verify_challenge)
    if stdout.strip() != 'true':
        logger.warning('Challenge not verified')
        return HttpResponseForbidden(stderr)

    if not stdout or stderr:
        logger.error(
            'An error occurred while verifying challenge: %s' % stderr
        )
        return HttpResponseForbidden(stderr)

    # clear js file
    f = open(challenge_sign_params, 'w+b')
    f.close()

    logger.info('Challenge successfully verified')

    # authenticate user
    user = authenticate(username=username, ripple_address=ripple_address)
    if user and user.is_active:
        login(request, user)
        return HttpResponseRedirect('/')
    else:
        return HttpResponseForbidden('User was not found')
Beispiel #2
0
 def get_image_link(self, cid, page):
     node_script = ''
     while node_script is '':
         node_script = self.get_data(self.general_formula % (cid, cid, page),
                                     'http://www.dm5.com/m%d/' % cid).decode('utf-8')
         if node_script is '':
             webbrowser.open_new('http://www.dm5.com/m%d/' % cid)
             time.sleep(3)
     refined_script = 'process.stdout.write(' + node_script.strip() + ')\n'
     with open('towards_direct_link.js', 'w') as file:
         file.write(refined_script)
     stderr, stdout = node_run('towards_direct_link.js')
     return stdout.split(',')[0]
Beispiel #3
0
def return_challenge(request):
    """
    :param request: request
    :return: perform signed challenge check
    """
    # get request data

    data = json.loads(request.body)
    challenge = data.get('challenge', None)
    signature = data.get('signature', None)
    public_key = data.get('publicKey', None)
    ripple_address = data.get('ripple_address', None)
    username = data.get('username', None)

    challenge_sign_params = os.path.join(
        os.path.dirname(__file__),
        'static/js/verify_challenge/challenge_sign_params.js')
    verify_challenge = os.path.join(
        os.path.dirname(__file__),
        'static/js/verify_challenge/verify_challenge.js')

    # Write received sign params to js file
    logger.info('Writing sign params to js')
    f = open(challenge_sign_params, 'w+b')
    f.write(SIGN_PARAMS % (challenge, signature, public_key))
    f.close()

    stderr, stdout = node_run(verify_challenge)
    if stdout.strip() != 'true':
        logger.warning('Challenge not verified')
        return HttpResponseForbidden(stderr)

    if not stdout or stderr:
        logger.error('An error occurred while verifying challenge: %s' %
                     stderr)
        return HttpResponseForbidden(stderr)

    # clear js file
    f = open(challenge_sign_params, 'w+b')
    f.close()

    logger.info('Challenge successfully verified')

    # authenticate user
    user = authenticate(username=username, ripple_address=ripple_address)
    if user and user.is_active:
        login(request, user)
        return HttpResponseRedirect('/')
    else:
        return HttpResponseForbidden('User was not found')
Beispiel #4
0
 def test_node_run_returns_output_from_script(self):
     stderr, stdout = node_run(os.path.join(os.path.dirname(__file__), 'test.js',))
     self.assertEqual(stdout, 'python-nodejs test\n')
Beispiel #5
0
 def test_node_run_returns_output(self):
     stderr, stdout = node_run('--version',)
     stdout = stdout.strip()
     self.assertEqual(stdout, node_version_raw)