@@ -384,17 +384,32 @@ def setup_assertion(self, authn, sp_entity_id, in_response_to, consumer_url,
384
384
** kwargs )
385
385
return assertion
386
386
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
+ ):
398
413
""" Create a response. A layer of indirection.
399
414
400
415
:param in_response_to: The session identifier of the request
@@ -524,8 +539,7 @@ def create_attribute_response(self, identity, in_response_to, destination,
524
539
525
540
if not name_id and userid :
526
541
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 )
529
543
logger .warning ("Unspecified NameID format" )
530
544
except Exception :
531
545
pass
@@ -565,56 +579,53 @@ def create_attribute_response(self, identity, in_response_to, destination,
565
579
if sp_entity_id :
566
580
kwargs ['sp_entity_id' ] = sp_entity_id
567
581
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 = {}
571
599
572
- # ------------------------------------------------------------------------
600
+ args ["policy" ] = kwargs .get (
601
+ "release_policy" , self .config .getattr ("policy" , "idp" )
602
+ )
603
+ args ['best_effort' ] = kwargs .get ("best_effort" , False )
573
604
574
- def gather_authn_response_args (self , sp_entity_id , name_id_policy , userid ,
575
- ** kwargs ):
576
- param_default = {
605
+ param_defaults = {
577
606
'sign_assertion' : False ,
578
607
'sign_response' : False ,
579
608
'encrypt_assertion' : False ,
580
609
'encrypt_assertion_self_contained' : True ,
581
610
'encrypted_advice_attributes' : False ,
582
611
'encrypt_cert_advice' : None ,
583
- 'encrypt_cert_assertion' : None
612
+ 'encrypt_cert_assertion' : None ,
584
613
}
585
614
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
-
598
615
# signing and digest algs
599
616
self .signing_algorithm = self .config .getattr ('signing_algorithm' , "idp" )
600
617
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" )
613
618
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
+ )
618
629
619
630
for arg , attr , eca , pefim in [
620
631
('encrypted_advice_attributes' , 'verify_encrypt_cert_advice' ,
@@ -698,7 +709,7 @@ def create_authn_response(
698
709
sign_alg = None ,
699
710
digest_alg = None ,
700
711
session_not_on_or_after = None ,
701
- ** kwargs
712
+ ** kwargs ,
702
713
):
703
714
""" Constructs an AuthenticationResponse
704
715
@@ -733,21 +744,24 @@ def create_authn_response(
733
744
734
745
try :
735
746
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 ,
738
752
sign_assertion = sign_assertion ,
739
753
encrypt_cert_advice = encrypt_cert_advice ,
740
754
encrypt_cert_assertion = encrypt_cert_assertion ,
741
755
encrypt_assertion = encrypt_assertion ,
742
- encrypt_assertion_self_contained
743
- = encrypt_assertion_self_contained ,
756
+ encrypt_assertion_self_contained = encrypt_assertion_self_contained ,
744
757
encrypted_advice_attributes = encrypted_advice_attributes ,
745
- pefim = pefim , ** kwargs )
758
+ pefim = pefim ,
759
+ ** kwargs ,
760
+ )
746
761
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
+ )
751
765
return ("%s" % response ).split ("\n " )
752
766
753
767
try :
0 commit comments