saml: add function nameid2kwargs_federation only for use with LibertyFederation

This commit is contained in:
Benjamin Dauvergne 2013-12-10 16:32:29 +01:00
parent 072fb9d4fb
commit eba88a26a7
2 changed files with 8 additions and 2 deletions

View File

@ -46,6 +46,7 @@ from authentic2.idp.models import get_attribute_policy
from authentic2.saml.models import LibertyAssertion, LibertyArtifact, \
LibertySession, LibertyFederation, LibertySessionDump, \
nameid2kwargs, saml2_urn_to_nidformat, LIBERTY_SESSION_DUMP_KIND_SP, \
nameid2kwargs_federation, \
nidformat_to_saml2_urn, save_key_values, get_and_delete_key_values, \
LibertyProvider, LibertyServiceProvider, NAME_ID_FORMATS
from authentic2.saml.common import redirect_next, asynchronous_bindings, \
@ -305,7 +306,7 @@ def build_assertion(request, login, nid_format='transient', attributes=None):
if nid_format == 'persistent':
logger.debug("nameID persistent, get or create "
"federation")
kwargs = nameid2kwargs(login.assertion.subject.nameID)
kwargs = nameid2kwargs_federation(login.assertion.subject.nameID)
service_provider = LibertyServiceProvider.objects \
.get(liberty_provider__entity_id=login.remoteProviderId)
federation, new = LibertyFederation.objects.get_or_create(

View File

@ -543,6 +543,11 @@ class LibertyArtifact(models.Model):
verbose_name = _('liberty artifact')
verbose_name_plural = _('liberty artifacts')
def nameid2kwargs_federation(name_id):
return {
'name_id_content': name_id.content,
'name_id_format': name_id.format }
def nameid2kwargs(name_id):
return {
'name_id_qualifier': name_id.nameQualifier,
@ -611,7 +616,7 @@ class LibertyFederation(models.Model):
saml2_assertion = kwargs.pop('saml2_assertion', None)
if saml2_assertion:
name_id = saml2_assertion.subject.nameID
kwargs.update(nameid2kwargs(name_id))
kwargs.update(nameid2kwargs_federation(name_id))
models.Model.__init__(self, *args, **kwargs)
def is_unique(self, for_format=True):