29 |
29 |
def metadata_validator(meta):
|
30 |
30 |
provider=lasso.Provider.newFromBuffer(lasso.PROVIDER_ROLE_ANY, meta.encode('utf8'))
|
31 |
31 |
if not provider:
|
32 |
|
raise ValidationError(_('Bad metadata file'))
|
|
32 |
raise ValidationError(_('Invalid metadata file'))
|
33 |
33 |
XML_NS = 'http://www.w3.org/XML/1998/namespace'
|
34 |
34 |
|
35 |
35 |
def get_lang(etree):
|
... | ... | |
153 |
153 |
return self.name + ' (%s)' % ', '.join(options)
|
154 |
154 |
|
155 |
155 |
class Meta:
|
156 |
|
verbose_name = _('liberty service provider policy')
|
157 |
|
verbose_name_plural = _('liberty service provider policies')
|
|
156 |
verbose_name = _('SAML service provider policy')
|
|
157 |
verbose_name_plural = _('SAML service provider policies')
|
158 |
158 |
|
159 |
159 |
|
160 |
160 |
AUTHSAML2_UNAUTH_PERSISTENT = (
|
... | ... | |
478 |
478 |
|
479 |
479 |
class Meta:
|
480 |
480 |
ordering = ('name',)
|
481 |
|
verbose_name = _('liberty provider')
|
482 |
|
verbose_name_plural = _('liberty providers')
|
|
481 |
verbose_name = _('SAML provider')
|
|
482 |
verbose_name_plural = _('SAML providers')
|
483 |
483 |
|
484 |
484 |
def get_all_custom_or_default(instance, name):
|
485 |
485 |
model = instance._meta.get_field_by_name(name)[0].rel.to
|
... | ... | |
524 |
524 |
return unicode(self.liberty_provider)
|
525 |
525 |
|
526 |
526 |
class Meta:
|
527 |
|
verbose_name = _('liberty service provider')
|
528 |
|
verbose_name_plural = _('liberty service providers')
|
|
527 |
verbose_name = _('SAML service provider')
|
|
528 |
verbose_name_plural = _('SAML service providers')
|
529 |
529 |
|
530 |
530 |
|
531 |
531 |
# TODO: The choice for requests must be restricted by the IdP metadata
|
... | ... | |
563 |
563 |
return (self.liberty_provider.slug,)
|
564 |
564 |
|
565 |
565 |
class Meta:
|
566 |
|
verbose_name = _('liberty identity provider')
|
567 |
|
verbose_name_plural = _('liberty identity providers')
|
|
566 |
verbose_name = _('SAML identity provider')
|
|
567 |
verbose_name_plural = _('SAML identity providers')
|
568 |
568 |
|
569 |
569 |
LIBERTY_SESSION_DUMP_KIND_SP = 0
|
570 |
570 |
LIBERTY_SESSION_DUMP_KIND_IDP = 1
|
... | ... | |
583 |
583 |
objects = managers.SessionLinkedManager()
|
584 |
584 |
|
585 |
585 |
class Meta:
|
586 |
|
verbose_name = _('liberty session dump')
|
587 |
|
verbose_name_plural = _('liberty session dumps')
|
|
586 |
verbose_name = _('SAML session dump')
|
|
587 |
verbose_name_plural = _('SAML session dumps')
|
588 |
588 |
|
589 |
589 |
class LibertyManageDump(models.Model):
|
590 |
590 |
'''Store lasso manage dump
|
... | ... | |
597 |
597 |
objects = managers.SessionLinkedManager()
|
598 |
598 |
|
599 |
599 |
class Meta:
|
600 |
|
verbose_name = _('liberty manage dump')
|
601 |
|
verbose_name_plural = _('liberty manage dumps')
|
|
600 |
verbose_name = _('SAML manage dump')
|
|
601 |
verbose_name_plural = _('SAML manage dumps')
|
602 |
602 |
|
603 |
603 |
class LibertyArtifact(models.Model):
|
604 |
604 |
"""Store an artifact and the associated XML content"""
|
... | ... | |
610 |
610 |
objects = managers.LibertyArtifactManager()
|
611 |
611 |
|
612 |
612 |
class Meta:
|
613 |
|
verbose_name = _('liberty artifact')
|
614 |
|
verbose_name_plural = _('liberty artifacts')
|
|
613 |
verbose_name = _('SAML artifact')
|
|
614 |
verbose_name_plural = _('SAML artifacts')
|
615 |
615 |
|
616 |
616 |
def nameid2kwargs(name_id):
|
617 |
617 |
return {
|
... | ... | |
637 |
637 |
models.Model.__init__(self, *args, **kwargs)
|
638 |
638 |
|
639 |
639 |
class Meta:
|
640 |
|
verbose_name = _('liberty assertion')
|
641 |
|
verbose_name_plural = _('liberty assertions')
|
|
640 |
verbose_name = _('SAML assertion')
|
|
641 |
verbose_name_plural = _('SAML assertions')
|
642 |
642 |
|
643 |
643 |
# XXX: for retrocompatibility
|
644 |
644 |
federation_delete = managers.federation_delete
|
... | ... | |
697 |
697 |
return not qs.exists()
|
698 |
698 |
|
699 |
699 |
class Meta:
|
700 |
|
verbose_name = _("liberty federation")
|
701 |
|
verbose_name_plural = _("liberty federations")
|
|
700 |
verbose_name = _("SAML federation")
|
|
701 |
verbose_name_plural = _("SAML federations")
|
702 |
702 |
|
703 |
703 |
def __unicode__(self):
|
704 |
704 |
return self.name_id_content
|
705 |
705 |
|
706 |
706 |
|
707 |
707 |
class LibertySession(models.Model):
|
708 |
|
"""Store the link between a Django session and a Liberty session"""
|
|
708 |
"""Store the link between a Django session and a SAML session"""
|
709 |
709 |
django_session_key = models.CharField(max_length = 128)
|
710 |
710 |
session_index = models.CharField(max_length = 80)
|
711 |
711 |
provider_id = models.CharField(max_length = 256)
|
... | ... | |
756 |
756 |
return '<LibertySession %s>' % self.__dict__
|
757 |
757 |
|
758 |
758 |
class Meta:
|
759 |
|
verbose_name = _("liberty session")
|
760 |
|
verbose_name_plural = _("liberty sessions")
|
|
759 |
verbose_name = _("SAML session")
|
|
760 |
verbose_name_plural = _("SAML sessions")
|
761 |
761 |
|
762 |
762 |
class LibertySessionSP(models.Model):
|
763 |
|
"""Store the link between a Django session and a Liberty session on the SP"""
|
|
763 |
"""Store the link between a Django session and a SAML session on the SP"""
|
764 |
764 |
django_session_key = models.CharField(max_length = 128)
|
765 |
765 |
session_index = models.CharField(max_length = 80, )
|
766 |
766 |
federation = models.ForeignKey(LibertyFederation)
|
767 |
767 |
|
768 |
768 |
class Meta:
|
769 |
|
verbose_name = _("liberty service provider session")
|
770 |
|
verbose_name_plural = _("liberty service provider sessions")
|
|
769 |
verbose_name = _("SAML service provider session")
|
|
770 |
verbose_name_plural = _("SAML service provider sessions")
|
771 |
771 |
|
772 |
772 |
class KeyValue(models.Model):
|
773 |
773 |
key = models.CharField(max_length=128, primary_key=True)
|
774 |
|
-
|