File tree Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Expand file tree Collapse file tree 2 files changed +15
-4
lines changed Original file line number Diff line number Diff line change @@ -102,7 +102,7 @@ def decode_auth(auth):
102102
103103def encode_header (auth ):
104104 auth_json = json .dumps (auth ).encode ('ascii' )
105- return base64 .b64encode (auth_json )
105+ return base64 .urlsafe_b64encode (auth_json )
106106
107107
108108def parse_auth (entries ):
Original file line number Diff line number Diff line change 1919 exclude_paths , convert_volume_binds , decode_json_header
2020)
2121from docker .utils .ports import build_port_bindings , split_port
22- from docker .auth import resolve_repository_name , resolve_authconfig
22+ from docker .auth import (
23+ resolve_repository_name , resolve_authconfig , encode_header
24+ )
2325
2426from . import base
2527from .helpers import make_tree
@@ -376,12 +378,21 @@ def test_decode_json_header(self):
376378 obj = {'a' : 'b' , 'c' : 1 }
377379 data = None
378380 if six .PY3 :
379- data = base64 .b64encode (bytes (json .dumps (obj ), 'utf-8' ))
381+ data = base64 .urlsafe_b64encode (bytes (json .dumps (obj ), 'utf-8' ))
380382 else :
381- data = base64 .b64encode (json .dumps (obj ))
383+ data = base64 .urlsafe_b64encode (json .dumps (obj ))
382384 decoded_data = decode_json_header (data )
383385 self .assertEqual (obj , decoded_data )
384386
387+ def test_803_urlsafe_encode (self ):
388+ auth_data = {
389+ 'username' : 'root' ,
390+ 'password' : 'GR?XGR?XGR?XGR?X'
391+ }
392+ encoded = encode_header (auth_data )
393+ assert b'/' not in encoded
394+ assert b'_' in encoded
395+
385396 def test_resolve_repository_name (self ):
386397 # docker hub library image
387398 self .assertEqual (
You can’t perform that action at this time.
0 commit comments