Skip to content

Commit 4ccfcbd

Browse files
committed
fix(ICP): Authenticate using basic auth when iam_apikey is prefixed with icp
1 parent 56cbfb4 commit 4ccfcbd

File tree

2 files changed

+15
-1
lines changed

2 files changed

+15
-1
lines changed

test/unit/test_watson_service.py

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -170,6 +170,17 @@ def test_for_icp():
170170
assert service2.password is not None
171171
assert service2.url is 'service_url'
172172

173+
service3 = AnyServiceV1('2017-07-07', iam_apikey='icp-xxx')
174+
assert service3.token_manager is None
175+
assert service2.iam_apikey is None
176+
assert service2.username is not None
177+
assert service2.password is not None
178+
179+
service4 = AnyServiceV1('2017-07-07', iam_access_token='lala')
180+
assert service4.token_manager is not None
181+
assert service4.username is None
182+
assert service4.password is None
183+
173184
@responses.activate
174185
def test_disable_SSL_verification():
175186
service1 = AnyServiceV1('2017-07-07', username='apikey', password='icp-xxxx', url='service_url')

watson_developer_cloud/watson_service.py

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,10 @@ def __init__(self, vcap_services_name, url, username=None, password=None,
265265
else:
266266
self.set_username_and_password(username, password)
267267
elif iam_access_token is not None or iam_apikey is not None:
268-
self.set_token_manager(iam_apikey, iam_access_token, iam_url)
268+
if iam_apikey and iam_apikey.startswith(ICP_PREFIX):
269+
self.set_username_and_password(APIKEY, iam_apikey)
270+
else:
271+
self.set_token_manager(iam_apikey, iam_access_token, iam_url)
269272

270273
# 2. Credentials from credential file
271274
if display_name and not self.username and not self.token_manager:

0 commit comments

Comments
 (0)