示例#1
0
def url_add_parameters(url, params):
    """Adds parameters to URL, parameter will be repeated if already present"""
    if params:
        fragments = list(urlparse(url))
        fragments[4] = urlencode(parse_qsl(fragments[4]) + params.items())
        url = urlunparse(fragments)
    return url
示例#2
0
def url_add_parameters(url, params):
    """Adds parameters to URL, parameter will be repeated if already present"""
    if params:
        fragments = list(urlparse(url))
        value = parse_qs(fragments[4])
        value.update(params)
        fragments[4] = urlencode(value)
        url = urlunparse(fragments)
    return url
示例#3
0
文件: utils.py 项目: 2070616d/TP3
def url_add_parameters(url, params):
    """Adds parameters to URL, parameter will be repeated if already present"""
    if params:
        fragments = list(urlparse(url))
        value = parse_qs(fragments[4])
        value.update(params)
        fragments[4] = urlencode(value)
        url = urlunparse(fragments)
    return url
    def _replace_domain(cls, url, new_domain):
        parsed_url = urlparse(url)
        url_parts = list(parsed_url)
        new_netloc = new_domain

        if ":" not in new_domain and ":" in parsed_url.netloc:
            _, port = parsed_url.netloc.split(":")
            new_netloc = "{}:{}".format(new_domain, port)

        url_parts[1] = new_netloc
        return urlunparse(url_parts)
    def build_absolute_uri(self, path=None):
        url = super(DjangoTenantStrategy, self).build_absolute_uri(path)
        auth_domain = settings.TENANT_AUTH_COMPLETE_URL

        if path and path in self.auth_complete_paths:
            parsed_url = urlparse(url)
            url_parts = list(parsed_url)
            url_parts[1] = auth_domain
            return urlunparse(url_parts)

        return url
    def build_absolute_uri(self, path=None):
        url = super(DjangoTenantStrategy, self).build_absolute_uri(path)
        auth_domain = settings.TENANT_AUTH_COMPLETE_URL

        if path and path in self.auth_complete_paths:
            parsed_url = urlparse(url)
            url_parts = list(parsed_url)
            url_parts[1] = auth_domain
            return urlunparse(url_parts)

        return url
    def _replace_domain(cls, url, new_domain):
        parsed_url = urlparse(url)
        url_parts = list(parsed_url)
        new_netloc = new_domain

        if ":" not in new_domain and ":" in parsed_url.netloc:
            _, port = parsed_url.netloc.split(":")
            new_netloc = "{}:{}".format(new_domain, port)

        url_parts[1] = new_netloc
        return urlunparse(url_parts)
示例#8
0
 def modify_start_url(self, start_url):
     """
     Given a SAML redirect URL, parse it and change the ID to
     a consistent value, so the request is always identical.
     """
     # Parse the SAML Request URL to get the XML being sent to TestShib
     url_parts = urlparse(start_url)
     query = dict(
         (k, v[0]) for (k, v) in parse_qs(url_parts.query).iteritems())
     xml = OneLogin_Saml2_Utils.decode_base64_and_inflate(
         query['SAMLRequest'])
     # Modify the XML:
     xml, changed = re.subn(r'ID="[^"]+"', 'ID="TEST_ID"', xml)
     self.assertEqual(changed, 1)
     # Update the URL to use the modified query string:
     query['SAMLRequest'] = OneLogin_Saml2_Utils.deflate_and_base64_encode(
         xml)
     url_parts = list(url_parts)
     url_parts[4] = urlencode(query)
     return urlunparse(url_parts)
    def get_tenant_url(cls, url):
        parsed_url = urlparse(url)
        url_parts = list(parsed_url)
        query = parse_qs(parsed_url.query)
        state_value = (query.get('state', None)
                       or query.get('redirect_state', None))

        if not state_value:
            return None

        if isinstance(state_value, list):
            state_value = state_value[0]

        tenant = cls.tenant_from_state(state_value)
        tenant_domain = tenant.domain_url

        if ":" in settings.TENANT_AUTH_COMPLETE_URL:
            _, port = settings.TENANT_AUTH_COMPLETE_URL.split(":")
            tenant_domain = ":".join((tenant_domain, port))

        url_parts[1] = tenant_domain
        return urlunparse(url_parts)
示例#10
0
文件: test_saml.py 项目: 2070616d/TP3
 def modify_start_url(self, start_url):
     """
     Given a SAML redirect URL, parse it and change the ID to
     a consistent value, so the request is always identical.
     """
     # Parse the SAML Request URL to get the XML being sent to TestShib
     url_parts = urlparse(start_url)
     query = dict((k, v[0]) for (k, v) in
                  parse_qs(url_parts.query).iteritems())
     xml = OneLogin_Saml2_Utils.decode_base64_and_inflate(
         query['SAMLRequest']
     )
     # Modify the XML:
     xml, changed = re.subn(r'ID="[^"]+"', 'ID="TEST_ID"', xml)
     self.assertEqual(changed, 1)
     # Update the URL to use the modified query string:
     query['SAMLRequest'] = OneLogin_Saml2_Utils.deflate_and_base64_encode(
         xml
     )
     url_parts = list(url_parts)
     url_parts[4] = urlencode(query)
     return urlunparse(url_parts)
    def get_tenant_url(cls, url):
        parsed_url = urlparse(url)
        url_parts = list(parsed_url)
        query = parse_qs(parsed_url.query)
        state_value = (query.get('state', None)
                       or query.get('redirect_state', None))

        if not state_value:
            return None

        if isinstance(state_value, list):
            state_value = state_value[0]

        tenant = cls.tenant_from_state(state_value)
        tenant_domain = tenant.domain_url

        if ":" in settings.TENANT_AUTH_COMPLETE_URL:
            _, port = settings.TENANT_AUTH_COMPLETE_URL.split(":")
            tenant_domain = ":".join((tenant_domain, port))

        url_parts[1] = tenant_domain
        return urlunparse(url_parts)