示例#1
0
    def get_context_data(self, **kwargs):
        service = self.request.GET.get('service')
        ticket = self.request.GET.get('ticket')
        pgturl = self.request.GET.get('pgtUrl')
        renew = to_bool(self.request.GET.get('renew'))

        st, pgt, error = validate_service_ticket(service, ticket, pgturl, renew)
        attributes = get_attributes(st.user, st.service) if st else None
        return {'ticket': st, 'pgt': pgt, 'error': error, 'attributes': attributes}
示例#2
0
    def get_context_data(self, **kwargs):
        target = self.request.GET.get('TARGET')

        assert defused_etree, '/samlValidate endpoint requires defusedxml to be installed'

        try:
            root = defused_etree.parse(self.request, forbid_dtd=True).getroot()
            ticket = root.find('.//{urn:oasis:names:tc:SAML:1.0:protocol}AssertionArtifact').text
        except (defused_etree.ParseError, ValueError, AttributeError):
            ticket = None

        st, pgt, error = validate_service_ticket(target, ticket, None, require_https=True)
        attributes = get_attributes(st.user, st.service) if st else None
        return {'ticket': st, 'pgt': pgt, 'error': error, 'attributes': attributes}
示例#3
0
    def get_context_data(self, **kwargs):
        service = self.request.GET.get('service')
        ticket = self.request.GET.get('ticket')
        pgturl = self.request.GET.get('pgtUrl')
        renew = to_bool(self.request.GET.get('renew'))

        st, pgt, error = validate_service_ticket(service, ticket, pgturl,
                                                 renew)
        attributes = get_attributes(st.user, st.service) if st else None
        return {
            'ticket': st,
            'pgt': pgt,
            'error': error,
            'attributes': attributes
        }
示例#4
0
    def get_context_data(self, **kwargs):
        service = self.request.GET.get('service')
        ticket = self.request.GET.get('ticket')
        pgturl = self.request.GET.get('pgtUrl')
        renew = to_bool(self.request.GET.get('renew'))

        if not ticket or ticket.startswith(ProxyTicket.TICKET_PREFIX):
            # If no ticket parameter is present, attempt to validate it
            # anyway so the appropriate error is raised
            t, pgt, proxies, error = validate_proxy_ticket(service, ticket, pgturl)
        else:
            t, pgt, error = validate_service_ticket(service, ticket, pgturl, renew)
            proxies = None
        attributes = get_attributes(t.user, t.service) if t else None
        return {'ticket': t, 'pgt': pgt, 'proxies': proxies,
                'error': error, 'attributes': attributes}
示例#5
0
    def get_context_data(self, **kwargs):
        service = self.request.GET.get('service')
        ticket = self.request.GET.get('ticket')
        pgturl = self.request.GET.get('pgtUrl')
        renew = to_bool(self.request.GET.get('renew'))

        if not ticket or ticket.startswith(ProxyTicket.TICKET_PREFIX):
            # If no ticket parameter is present, attempt to validate it
            # anyway so the appropriate error is raised
            t, pgt, proxies, error = validate_proxy_ticket(
                service, ticket, pgturl)
        else:
            t, pgt, error = validate_service_ticket(service, ticket, pgturl,
                                                    renew)
            proxies = None
        attributes = get_attributes(t.user, t.service) if t else None
        return {
            'ticket': t,
            'pgt': pgt,
            'proxies': proxies,
            'error': error,
            'attributes': attributes
        }
示例#6
0
    def get_context_data(self, **kwargs):
        target = self.request.GET.get('TARGET')

        assert defused_etree, '/samlValidate endpoint requires defusedxml to be installed'

        try:
            root = defused_etree.parse(self.request, forbid_dtd=True).getroot()
            ticket = root.find(
                './/{urn:oasis:names:tc:SAML:1.0:protocol}AssertionArtifact'
            ).text
        except (defused_etree.ParseError, ValueError, AttributeError):
            ticket = None

        st, pgt, error = validate_service_ticket(target,
                                                 ticket,
                                                 None,
                                                 require_https=True)
        attributes = get_attributes(st.user, st.service) if st else None
        return {
            'ticket': st,
            'pgt': pgt,
            'error': error,
            'attributes': attributes
        }