@@ -103,12 +103,12 @@ def __init__(self, environ, start_response, user=None):
103103 def unpack_redirect (self ):
104104 if "QUERY_STRING" in self .environ :
105105 _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 ()])
107107 else :
108108 return None
109109
110110 def unpack_post (self ):
111- _dict = _get_query (get_post (self .environ ))
111+ _dict = parse_qs (get_post (self .environ ))
112112 logger .debug ("unpack_post:: %s" , _dict )
113113 try :
114114 return dict ([(k , v [0 ]) for k , v in _dict .items ()])
@@ -297,7 +297,7 @@ def verify_request(self, query, binding):
297297
298298 resp_args = {}
299299 try :
300- resp_args = IDP .response_args (_authn_req , self . response_bindings )
300+ resp_args = IDP .response_args (_authn_req )
301301 _resp = None
302302 except UnknownPrincipal as excp :
303303 _resp = IDP .create_error_response (_authn_req .id ,
@@ -482,13 +482,13 @@ def ecp(self):
482482 resp = Unauthorized ()
483483 else :
484484 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 ):
488487 resp = Unauthorized ()
489488 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 )
492492 except ValueError :
493493 resp = Unauthorized ()
494494 else :
@@ -531,11 +531,11 @@ def do_authentication(environ, start_response, authn_context, key,
531531# -----------------------------------------------------------------------------
532532
533533PASSWD = {
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" }
539539
540540
541541def username_password_authn (environ , start_response , reference , key ,
@@ -563,46 +563,18 @@ def username_password_authn(environ, start_response, reference, key,
563563 return resp (environ , start_response , ** argv )
564564
565565
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-
592566def verify_username_and_password (dic ):
593567 global PASSWD
594568 # 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 ]
600571 else :
601572 return False , ""
602573
603574
604575def do_verify (environ , start_response , _ ):
605- query = _get_query (get_post (environ ))
576+ query = parse_qs (get_post (environ ))
577+
606578 logger .debug ("do_verify: %s" , query )
607579
608580 try :
@@ -889,8 +861,7 @@ def info_from_cookie(kaka):
889861 morsel = cookie_obj .get ("idpauthn" , None )
890862 if morsel :
891863 try :
892- key , ref = \
893- _ensure_string (base64 .b64decode (morsel .value )).split (":" )
864+ key , ref = base64 .b64decode (morsel .value ).split (":" )
894865 return IDP .cache .uid2user [key ], ref
895866 except (KeyError , TypeError ):
896867 return None , None
@@ -915,10 +886,8 @@ def delete_cookie(environ, name):
915886
916887
917888def set_cookie (name , _ , * args ):
918- args = [a .encode () for a in args ]
919-
920889 cookie = SimpleCookie ()
921- cookie [name ] = base64 .b64encode (b ":" .join (args )). decode ( )
890+ cookie [name ] = base64 .b64encode (":" .join (args ))
922891 cookie [name ]['path' ] = "/"
923892 cookie [name ]["expires" ] = _expiration (5 ) # 5 minutes from now
924893 logger .debug ("Cookie expires: %s" , cookie [name ]["expires" ])
@@ -982,7 +951,7 @@ def metadata(environ, start_response):
982951 args .valid , args .cert , args .keyfile ,
983952 args .id , args .name , args .sign )
984953 start_response ('200 OK' , [('Content-Type' , "text/xml" )])
985- return [ metadata ]
954+ return metadata
986955 except Exception as ex :
987956 logger .error ("An error occured while creating metadata: %s" , ex .message )
988957 return not_found (environ , start_response )
@@ -1073,8 +1042,7 @@ def application(environ, start_response):
10731042
10741043if __name__ == '__main__' :
10751044 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' )
10781046 parser .add_argument ('-v' , dest = 'valid' ,
10791047 help = "How long, in days, the metadata is valid from "
10801048 "the time of creation" )
0 commit comments