@@ -97,21 +97,28 @@ def __init__(self, conf):
97
97
" configuring ssl.key.location" )
98
98
99
99
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 :
108
114
userinfo = tuple (conf_copy .pop ('basic.auth.user.info' , '' ).split (':' ))
109
-
110
115
if len (userinfo ) != 2 :
111
116
raise ValueError ("basic.auth.user.info must be in the form"
112
117
" 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 } '
115
122
116
123
# Any leftover keys are unknown to _RestClient
117
124
if len (conf_copy ) > 0 :
0 commit comments