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):
102
102
103
103
def encode_header (auth ):
104
104
auth_json = json .dumps (auth ).encode ('ascii' )
105
- return base64 .b64encode (auth_json )
105
+ return base64 .urlsafe_b64encode (auth_json )
106
106
107
107
108
108
def parse_auth (entries ):
Original file line number Diff line number Diff line change 19
19
exclude_paths , convert_volume_binds , decode_json_header
20
20
)
21
21
from 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
+ )
23
25
24
26
from . import base
25
27
from .helpers import make_tree
@@ -376,12 +378,21 @@ def test_decode_json_header(self):
376
378
obj = {'a' : 'b' , 'c' : 1 }
377
379
data = None
378
380
if six .PY3 :
379
- data = base64 .b64encode (bytes (json .dumps (obj ), 'utf-8' ))
381
+ data = base64 .urlsafe_b64encode (bytes (json .dumps (obj ), 'utf-8' ))
380
382
else :
381
- data = base64 .b64encode (json .dumps (obj ))
383
+ data = base64 .urlsafe_b64encode (json .dumps (obj ))
382
384
decoded_data = decode_json_header (data )
383
385
self .assertEqual (obj , decoded_data )
384
386
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
+
385
396
def test_resolve_repository_name (self ):
386
397
# docker hub library image
387
398
self .assertEqual (
You can’t perform that action at this time.
0 commit comments