@@ -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