Exemple #1
0
    def test_parse_origin_from_url(self):
        url = ''
        self.assertIsNone(parse_origin_from_url(url))

        url = 'www.example.com'
        self.assertEqual(parse_origin_from_url(url), 'http://www.example.com')

        url = 'http://www.example.com'
        self.assertEqual(parse_origin_from_url(url), 'http://www.example.com')

        url = 'www.example.com:80'
        self.assertEqual(parse_origin_from_url(url), 'http://www.example.com')

        url = 'http://www.example.com:80'
        self.assertEqual(parse_origin_from_url(url), 'http://www.example.com')

        url = 'www.example.com:443'
        self.assertEqual(parse_origin_from_url(url), 'https://www.example.com')

        url = 'https://www.example.com'
        self.assertEqual(parse_origin_from_url(url), 'https://www.example.com')

        url = 'https://www.example.com:443'
        self.assertEqual(parse_origin_from_url(url), 'https://www.example.com')

        url = 'https://www.example.com:80'
        self.assertEqual(parse_origin_from_url(url), url)

        url = 'http://www.example.com:443'
        self.assertEqual(parse_origin_from_url(url), url)
Exemple #2
0
def get_origin_setting(options):
    if options.origin == '*':
        if not options.debug:
            raise ValueError(
                'Wildcard origin policy is only allowed in debug mode.')
        else:
            return '*'

    origin = options.origin.lower()
    if origin in ['same', 'primary']:
        return origin

    origins = set()
    for url in origin.split(','):
        orig = parse_origin_from_url(url)
        if orig:
            origins.add(orig)

    if not origins:
        raise ValueError('Empty origin list')

    return origins