@@ -103,12 +103,12 @@ def __init__(self, environ, start_response, user=None):
103
103
def unpack_redirect (self ):
104
104
if "QUERY_STRING" in self .environ :
105
105
_qs = self .environ ["QUERY_STRING" ]
106
- return dict ([(k , v [0 ]) for k , v in _get_query (_qs ).items ()])
106
+ return dict ([(k , v [0 ]) for k , v in parse_qs (_qs ).items ()])
107
107
else :
108
108
return None
109
109
110
110
def unpack_post (self ):
111
- _dict = _get_query (get_post (self .environ ))
111
+ _dict = parse_qs (get_post (self .environ ))
112
112
logger .debug ("unpack_post:: %s" , _dict )
113
113
try :
114
114
return dict ([(k , v [0 ]) for k , v in _dict .items ()])
@@ -297,7 +297,7 @@ def verify_request(self, query, binding):
297
297
298
298
resp_args = {}
299
299
try :
300
- resp_args = IDP .response_args (_authn_req , self . response_bindings )
300
+ resp_args = IDP .response_args (_authn_req )
301
301
_resp = None
302
302
except UnknownPrincipal as excp :
303
303
_resp = IDP .create_error_response (_authn_req .id ,
@@ -482,13 +482,13 @@ def ecp(self):
482
482
resp = Unauthorized ()
483
483
else :
484
484
try :
485
- (user , passwd ) = _info .split (b":" )
486
- user = user .decode ()
487
- if not is_equal (PASSWD [user ], passwd ):
485
+ (user , passwd ) = _info .split (":" )
486
+ if is_equal (PASSWD [user ], passwd ):
488
487
resp = Unauthorized ()
489
488
self .user = user
490
- self .environ ["idp.authn" ] = \
491
- AUTHN_BROKER .get_authn_by_accr (PASSWORD )
489
+ self .environ [
490
+ "idp.authn" ] = AUTHN_BROKER .get_authn_by_accr (
491
+ PASSWORD )
492
492
except ValueError :
493
493
resp = Unauthorized ()
494
494
else :
@@ -531,11 +531,11 @@ def do_authentication(environ, start_response, authn_context, key,
531
531
# -----------------------------------------------------------------------------
532
532
533
533
PASSWD = {
534
- "daev0001" : b "qwerty" ,
535
- "testuser" : b "qwerty" ,
536
- "roland" : b "dianakra" ,
537
- "babs" : b "howes" ,
538
- "upper" : b "crust" }
534
+ "daev0001" : "qwerty" ,
535
+ "testuser" : "qwerty" ,
536
+ "roland" : "dianakra" ,
537
+ "babs" : "howes" ,
538
+ "upper" : "crust" }
539
539
540
540
541
541
def username_password_authn (environ , start_response , reference , key ,
@@ -563,46 +563,18 @@ def username_password_authn(environ, start_response, reference, key,
563
563
return resp (environ , start_response , ** argv )
564
564
565
565
566
- def _ensure_string (thing ):
567
- import six
568
- if isinstance (thing , six .binary_type ):
569
- return thing .decode ()
570
- elif isinstance (thing , six .string_types ):
571
- return thing
572
- elif isinstance (thing , list ):
573
- return [_ensure_string (item ) for item in thing ]
574
- else :
575
- return thing
576
-
577
-
578
- def _convert_dict_with_bytes (d ):
579
- new_d = {}
580
- for key , value in d .items ():
581
- new_key = _ensure_string (key )
582
- new_value = _ensure_string (value )
583
- new_d [new_key ] = new_value
584
- return new_d
585
-
586
-
587
- def _get_query (qs ):
588
- query = parse_qs (qs )
589
- return _convert_dict_with_bytes (query )
590
-
591
-
592
566
def verify_username_and_password (dic ):
593
567
global PASSWD
594
568
# verify username and password
595
- login = dic ["login" ][0 ]
596
- password = dic ["password" ][0 ].encode ()
597
-
598
- if PASSWD [login ] == password :
599
- return True , login
569
+ if PASSWD [dic ["login" ][0 ]] == dic ["password" ][0 ]:
570
+ return True , dic ["login" ][0 ]
600
571
else :
601
572
return False , ""
602
573
603
574
604
575
def do_verify (environ , start_response , _ ):
605
- query = _get_query (get_post (environ ))
576
+ query = parse_qs (get_post (environ ))
577
+
606
578
logger .debug ("do_verify: %s" , query )
607
579
608
580
try :
@@ -889,8 +861,7 @@ def info_from_cookie(kaka):
889
861
morsel = cookie_obj .get ("idpauthn" , None )
890
862
if morsel :
891
863
try :
892
- key , ref = \
893
- _ensure_string (base64 .b64decode (morsel .value )).split (":" )
864
+ key , ref = base64 .b64decode (morsel .value ).split (":" )
894
865
return IDP .cache .uid2user [key ], ref
895
866
except (KeyError , TypeError ):
896
867
return None , None
@@ -915,10 +886,8 @@ def delete_cookie(environ, name):
915
886
916
887
917
888
def set_cookie (name , _ , * args ):
918
- args = [a .encode () for a in args ]
919
-
920
889
cookie = SimpleCookie ()
921
- cookie [name ] = base64 .b64encode (b ":" .join (args )). decode ( )
890
+ cookie [name ] = base64 .b64encode (":" .join (args ))
922
891
cookie [name ]['path' ] = "/"
923
892
cookie [name ]["expires" ] = _expiration (5 ) # 5 minutes from now
924
893
logger .debug ("Cookie expires: %s" , cookie [name ]["expires" ])
@@ -982,7 +951,7 @@ def metadata(environ, start_response):
982
951
args .valid , args .cert , args .keyfile ,
983
952
args .id , args .name , args .sign )
984
953
start_response ('200 OK' , [('Content-Type' , "text/xml" )])
985
- return [ metadata ]
954
+ return metadata
986
955
except Exception as ex :
987
956
logger .error ("An error occured while creating metadata: %s" , ex .message )
988
957
return not_found (environ , start_response )
@@ -1073,8 +1042,7 @@ def application(environ, start_response):
1073
1042
1074
1043
if __name__ == '__main__' :
1075
1044
parser = argparse .ArgumentParser ()
1076
- parser .add_argument ('-p' , dest = 'path' , help = 'Path to configuration file.' ,
1077
- default = './idp_conf.py' )
1045
+ parser .add_argument ('-p' , dest = 'path' , help = 'Path to configuration file.' , default = './idp_conf.py' )
1078
1046
parser .add_argument ('-v' , dest = 'valid' ,
1079
1047
help = "How long, in days, the metadata is valid from "
1080
1048
"the time of creation" )
0 commit comments