10
10
11
11
from mako .lookup import TemplateLookup
12
12
13
+ import six
13
14
from six .moves .http_cookies import SimpleCookie
14
15
from six .moves .urllib .parse import parse_qs
15
16
@@ -578,16 +579,20 @@ def username_password_authn(
578
579
579
580
580
581
def verify_username_and_password (dic ):
581
- global PASSWD
582
582
# verify username and password
583
- if PASSWD [dic ["login" ][0 ]] == dic ["password" ][0 ]:
584
- return True , dic ["login" ][0 ]
583
+ username = dic ["login" ][0 ]
584
+ password = dic ["password" ][0 ]
585
+ if PASSWD [username ] == password :
586
+ return True , username
585
587
else :
586
- return False , ""
588
+ return False , None
587
589
588
590
589
591
def do_verify (environ , start_response , _ ):
590
- query = parse_qs (get_post (environ ))
592
+ query_str = get_post (environ )
593
+ if not isinstance (query_str , six .string_types ):
594
+ query_str = query_str .decode ("ascii" )
595
+ query = parse_qs (query_str )
591
596
592
597
logger .debug ("do_verify: %s" , query )
593
598
@@ -877,7 +882,10 @@ def info_from_cookie(kaka):
877
882
morsel = cookie_obj .get ("idpauthn" , None )
878
883
if morsel :
879
884
try :
880
- key , ref = base64 .b64decode (morsel .value ).split (":" )
885
+ data = base64 .b64decode (morsel .value )
886
+ if not isinstance (data , six .string_types ):
887
+ data = data .decode ("ascii" )
888
+ key , ref = data .split (":" , 1 )
881
889
return IDP .cache .uid2user [key ], ref
882
890
except (KeyError , TypeError ):
883
891
return None , None
@@ -903,7 +911,16 @@ def delete_cookie(environ, name):
903
911
904
912
def set_cookie (name , _ , * args ):
905
913
cookie = SimpleCookie ()
906
- cookie [name ] = base64 .b64encode (":" .join (args ))
914
+
915
+ data = ":" .join (args )
916
+ if not isinstance (data , six .binary_type ):
917
+ data = data .encode ("ascii" )
918
+
919
+ data64 = base64 .b64encode (data )
920
+ if not isinstance (data64 , six .string_types ):
921
+ data64 = data64 .decode ("ascii" )
922
+
923
+ cookie [name ] = data64
907
924
cookie [name ]["path" ] = "/"
908
925
cookie [name ]["expires" ] = _expiration (5 ) # 5 minutes from now
909
926
logger .debug ("Cookie expires: %s" , cookie [name ]["expires" ])
0 commit comments