@@ -384,17 +384,32 @@ def setup_assertion(self, authn, sp_entity_id, in_response_to, consumer_url,
384384 ** kwargs )
385385 return assertion
386386
387- def _authn_response (self , in_response_to , consumer_url ,
388- sp_entity_id , identity = None , name_id = None ,
389- status = None , authn = None , issuer = None , policy = None ,
390- sign_assertion = False , sign_response = False ,
391- best_effort = False , encrypt_assertion = False ,
392- encrypt_cert_advice = None , encrypt_cert_assertion = None ,
393- authn_statement = None ,
394- encrypt_assertion_self_contained = False ,
395- encrypted_advice_attributes = False ,
396- pefim = False , sign_alg = None , digest_alg = None ,
397- farg = None , session_not_on_or_after = None ):
387+ def _authn_response (
388+ self ,
389+ in_response_to ,
390+ consumer_url ,
391+ sp_entity_id ,
392+ identity = None ,
393+ name_id = None ,
394+ status = None ,
395+ authn = None ,
396+ issuer = None ,
397+ policy = None ,
398+ sign_assertion = False ,
399+ sign_response = False ,
400+ best_effort = False ,
401+ encrypt_assertion = False ,
402+ encrypt_cert_advice = None ,
403+ encrypt_cert_assertion = None ,
404+ authn_statement = None ,
405+ encrypt_assertion_self_contained = False ,
406+ encrypted_advice_attributes = False ,
407+ pefim = False ,
408+ sign_alg = None ,
409+ digest_alg = None ,
410+ farg = None ,
411+ session_not_on_or_after = None ,
412+ ):
398413 """ Create a response. A layer of indirection.
399414
400415 :param in_response_to: The session identifier of the request
@@ -524,8 +539,7 @@ def create_attribute_response(self, identity, in_response_to, destination,
524539
525540 if not name_id and userid :
526541 try :
527- name_id = self .ident .construct_nameid (userid , policy ,
528- sp_entity_id )
542+ name_id = self .ident .construct_nameid (userid , policy , sp_entity_id )
529543 logger .warning ("Unspecified NameID format" )
530544 except Exception :
531545 pass
@@ -565,56 +579,53 @@ def create_attribute_response(self, identity, in_response_to, destination,
565579 if sp_entity_id :
566580 kwargs ['sp_entity_id' ] = sp_entity_id
567581
568- return self ._response (in_response_to , destination , status , issuer ,
569- sign_response , to_sign , sign_alg = sign_alg ,
570- digest_alg = digest_alg , ** kwargs )
582+ return self ._response (
583+ in_response_to ,
584+ destination ,
585+ status ,
586+ issuer ,
587+ sign_response ,
588+ to_sign ,
589+ sign_alg = sign_alg ,
590+ digest_alg = digest_alg ,
591+ ** kwargs ,
592+ )
593+
594+ def gather_authn_response_args (
595+ self , sp_entity_id , name_id_policy , userid , ** kwargs
596+ ):
597+ # collect args and return them
598+ args = {}
571599
572- # ------------------------------------------------------------------------
600+ args ["policy" ] = kwargs .get (
601+ "release_policy" , self .config .getattr ("policy" , "idp" )
602+ )
603+ args ['best_effort' ] = kwargs .get ("best_effort" , False )
573604
574- def gather_authn_response_args (self , sp_entity_id , name_id_policy , userid ,
575- ** kwargs ):
576- param_default = {
605+ param_defaults = {
577606 'sign_assertion' : False ,
578607 'sign_response' : False ,
579608 'encrypt_assertion' : False ,
580609 'encrypt_assertion_self_contained' : True ,
581610 'encrypted_advice_attributes' : False ,
582611 'encrypt_cert_advice' : None ,
583- 'encrypt_cert_assertion' : None
612+ 'encrypt_cert_assertion' : None ,
584613 }
585614
586- args = {}
587-
588- try :
589- args ["policy" ] = kwargs ["release_policy" ]
590- except KeyError :
591- args ["policy" ] = self .config .getattr ("policy" , "idp" )
592-
593- try :
594- args ['best_effort' ] = kwargs ["best_effort" ]
595- except KeyError :
596- args ['best_effort' ] = False
597-
598615 # signing and digest algs
599616 self .signing_algorithm = self .config .getattr ('signing_algorithm' , "idp" )
600617 self .digest_algorithm = self .config .getattr ('digest_algorithm' , "idp" )
601-
602- for param in ['sign_assertion' , 'sign_response' , 'encrypt_assertion' ,
603- 'encrypt_assertion_self_contained' ,
604- 'encrypted_advice_attributes' , 'encrypt_cert_advice' ,
605- 'encrypt_cert_assertion' ]:
606- try :
607- _val = kwargs [param ]
608- except KeyError :
609- _val = None
610-
611- if _val is None :
612- _val = self .config .getattr (param , "idp" )
613618
614- if _val is None :
615- args [param ] = param_default [param ]
616- else :
617- args [param ] = _val
619+ for param , val_default in param_defaults .items ():
620+ val_kw = kwargs .get (param )
621+ val_config = self .config .getattr (param , "idp" )
622+ args [param ] = (
623+ val_kw
624+ if val_kw is not None
625+ else val_config
626+ if val_config is not None
627+ else val_default
628+ )
618629
619630 for arg , attr , eca , pefim in [
620631 ('encrypted_advice_attributes' , 'verify_encrypt_cert_advice' ,
@@ -698,7 +709,7 @@ def create_authn_response(
698709 sign_alg = None ,
699710 digest_alg = None ,
700711 session_not_on_or_after = None ,
701- ** kwargs
712+ ** kwargs ,
702713 ):
703714 """ Constructs an AuthenticationResponse
704715
@@ -733,21 +744,24 @@ def create_authn_response(
733744
734745 try :
735746 args = self .gather_authn_response_args (
736- sp_entity_id , name_id_policy = name_id_policy , userid = userid ,
737- name_id = name_id , sign_response = sign_response ,
747+ sp_entity_id ,
748+ name_id_policy = name_id_policy ,
749+ userid = userid ,
750+ name_id = name_id ,
751+ sign_response = sign_response ,
738752 sign_assertion = sign_assertion ,
739753 encrypt_cert_advice = encrypt_cert_advice ,
740754 encrypt_cert_assertion = encrypt_cert_assertion ,
741755 encrypt_assertion = encrypt_assertion ,
742- encrypt_assertion_self_contained
743- = encrypt_assertion_self_contained ,
756+ encrypt_assertion_self_contained = encrypt_assertion_self_contained ,
744757 encrypted_advice_attributes = encrypted_advice_attributes ,
745- pefim = pefim , ** kwargs )
758+ pefim = pefim ,
759+ ** kwargs ,
760+ )
746761 except IOError as exc :
747- response = self .create_error_response (in_response_to ,
748- destination ,
749- sp_entity_id ,
750- exc , name_id )
762+ response = self .create_error_response (
763+ in_response_to , destination , sp_entity_id , exc , name_id
764+ )
751765 return ("%s" % response ).split ("\n " )
752766
753767 try :
0 commit comments