@@ -97,21 +97,28 @@ def __init__(self, conf):
9797 " configuring ssl.key.location" )
9898
9999 userinfo = utils .get_auth_from_url (base_url )
100- if 'basic.auth.user.info' in conf_copy :
101- if userinfo != ('' , '' ):
102- raise ValueError ("basic.auth.user.info configured with"
103- " userinfo credentials in the URL."
104- " Remove userinfo credentials from the url or"
105- " remove basic.auth.user.info from the"
106- " configuration" )
107-
100+ url_basic_auth = userinfo != ('' , '' )
101+ config_basic_auth = 'basic.auth.user.info' in conf_copy
102+ config_bearer_auth = 'token' in conf_copy
103+ if sum ([url_basic_auth , config_basic_auth , config_bearer_auth ]) > 1 :
104+ raise ValueError ("credentials are specified more than once,"
105+ " or multiple authentication mechanisms are configured."
106+ " Please specify only one of the following options:"
107+ " (1) user credentials on the url"
108+ " (2) user credentials using 'basic.auth.user.info' configuration"
109+ " (3) token using 'token' configuration." )
110+
111+ if url_basic_auth :
112+ self .session .auth = userinfo
113+ elif config_basic_auth :
108114 userinfo = tuple (conf_copy .pop ('basic.auth.user.info' , '' ).split (':' ))
109-
110115 if len (userinfo ) != 2 :
111116 raise ValueError ("basic.auth.user.info must be in the form"
112117 " of {username}:{password}" )
113-
114- self .session .auth = userinfo if userinfo != ('' , '' ) else None
118+ self .session .auth = userinfo
119+ elif config_bearer_auth :
120+ token = conf_copy .pop ('token' )
121+ self .session .headers ['Authorization' ] = f'Bearer { token } '
115122
116123 # Any leftover keys are unknown to _RestClient
117124 if len (conf_copy ) > 0 :
0 commit comments