Skip to content

Commit e5151c6

Browse files
committed
Update registry rest client to support bearer authentication
1 parent 5a87879 commit e5151c6

File tree

1 file changed

+18
-11
lines changed

1 file changed

+18
-11
lines changed

src/confluent_kafka/schema_registry/schema_registry_client.py

+18-11
Original file line numberDiff line numberDiff line change
@@ -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

Comments
 (0)