Skip to content

Commit d71c2b8

Browse files
committed
fix: disable SSL verification type issues and improve tests
1 parent fa11171 commit d71c2b8

File tree

3 files changed

+39
-9
lines changed

3 files changed

+39
-9
lines changed

ibm_cloud_sdk_core/get_authenticator.py

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -65,22 +65,22 @@ def __construct_authenticator(config: dict) -> Authenticator:
6565
url=config.get('AUTH_URL'),
6666
client_id=config.get('CLIENT_ID'),
6767
client_secret=config.get('CLIENT_SECRET'),
68-
disable_ssl_verification=config.get('AUTH_DISABLE_SSL'),
68+
disable_ssl_verification=config.get('AUTH_DISABLE_SSL', 'false').lower() == 'true',
6969
scope=config.get('SCOPE'))
7070
elif auth_type == 'cp4d':
7171
authenticator = CloudPakForDataAuthenticator(
7272
username=config.get('USERNAME'),
7373
password=config.get('PASSWORD'),
7474
url=config.get('AUTH_URL'),
7575
apikey=config.get('APIKEY'),
76-
disable_ssl_verification=config.get('AUTH_DISABLE_SSL'))
76+
disable_ssl_verification=config.get('AUTH_DISABLE_SSL', 'false').lower() == 'true')
7777
elif auth_type == 'iam' and config.get('APIKEY'):
7878
authenticator = IAMAuthenticator(
7979
apikey=config.get('APIKEY'),
8080
url=config.get('AUTH_URL'),
8181
client_id=config.get('CLIENT_ID'),
8282
client_secret=config.get('CLIENT_SECRET'),
83-
disable_ssl_verification=config.get('AUTH_DISABLE_SSL'),
83+
disable_ssl_verification=config.get('AUTH_DISABLE_SSL', 'false').lower() == 'true',
8484
scope=config.get('SCOPE'))
8585
elif auth_type == 'noauth':
8686
authenticator = NoAuthAuthenticator()
Lines changed: 9 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,13 @@
11
SERVICE_1_AUTH_TYPE=container
22
SERVICE_1_CR_TOKEN_FILENAME=crtoken.txt
3-
SERVICE_1_IAM_PROFILE_NAME=iam-user1
4-
SERVICE_1_IAM_PROFILE_ID=iam-id1
3+
SERVICE_1_IAM_PROFILE_NAME=iam-user-123
4+
SERVICE_1_IAM_PROFILE_ID=iam-id-123
55
SERVICE_1_AUTH_URL=https://iamhost/iam/api
66
SERVICE_1_SCOPE=scope1
7-
SERVICE_1_CLIENT_ID=iam-client1
8-
SERVICE_1_CLIENT_SECRET=iam-secret1
9-
SERVICE_1_AUTH_DISABLE_SSL=true
7+
SERVICE_1_CLIENT_ID=iam-client-123
8+
SERVICE_1_CLIENT_SECRET=iam-secret-123
9+
SERVICE_1_AUTH_DISABLE_SSL=true
10+
11+
SERVICE_2_AUTH_TYPE=container
12+
SERVICE_2_IAM_PROFILE_NAME=iam-user-123
13+
SERVICE_2_AUTH_DISABLE_SSL=false

test/test_utils.py

Lines changed: 27 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -274,13 +274,19 @@ def test_convert_list():
274274
assert mock4_str == mock4
275275

276276

277+
# pylint: disable=too-many-statements
277278
def test_get_authenticator_from_credential_file():
278279
file_path = os.path.join(os.path.dirname(__file__),
279280
'../resources/ibm-credentials-iam.env')
280281
os.environ['IBM_CREDENTIALS_FILE'] = file_path
281282
authenticator = get_authenticator_from_environment('ibm watson')
282283
assert authenticator is not None
283284
assert authenticator.token_manager.apikey == '5678efgh'
285+
assert authenticator.token_manager.url == 'https://iam.cloud.ibm.com'
286+
assert authenticator.token_manager.client_id is None
287+
assert authenticator.token_manager.client_secret is None
288+
assert authenticator.token_manager.disable_ssl_verification is False
289+
assert authenticator.token_manager.scope is None
284290
del os.environ['IBM_CREDENTIALS_FILE']
285291

286292
file_path = os.path.join(os.path.dirname(__file__),
@@ -297,7 +303,24 @@ def test_get_authenticator_from_credential_file():
297303
authenticator = get_authenticator_from_environment('service 1')
298304
assert authenticator is not None
299305
assert authenticator.token_manager.cr_token_filename == 'crtoken.txt'
300-
assert authenticator.token_manager.iam_profile_name == 'iam-user1'
306+
assert authenticator.token_manager.iam_profile_name == 'iam-user-123'
307+
assert authenticator.token_manager.iam_profile_id == 'iam-id-123'
308+
assert authenticator.token_manager.url == 'https://iamhost/iam/api'
309+
assert authenticator.token_manager.scope == 'scope1'
310+
assert authenticator.token_manager.client_id == 'iam-client-123'
311+
assert authenticator.token_manager.client_secret == 'iam-secret-123'
312+
assert authenticator.token_manager.disable_ssl_verification is True
313+
314+
authenticator = get_authenticator_from_environment('service 2')
315+
assert authenticator is not None
316+
assert authenticator.token_manager.cr_token_filename is None
317+
assert authenticator.token_manager.iam_profile_name == 'iam-user-123'
318+
assert authenticator.token_manager.iam_profile_id is None
319+
assert authenticator.token_manager.url == 'https://iam.cloud.ibm.com'
320+
assert authenticator.token_manager.scope is None
321+
assert authenticator.token_manager.client_id is None
322+
assert authenticator.token_manager.client_secret is None
323+
assert authenticator.token_manager.disable_ssl_verification is False
301324
del os.environ['IBM_CREDENTIALS_FILE']
302325

303326
file_path = os.path.join(os.path.dirname(__file__),
@@ -307,6 +330,9 @@ def test_get_authenticator_from_credential_file():
307330
assert authenticator is not None
308331
assert authenticator.token_manager.username == 'my_username'
309332
assert authenticator.token_manager.password == 'my_password'
333+
assert authenticator.token_manager.url == 'https://my_url/v1/authorize'
334+
assert authenticator.token_manager.apikey is None
335+
assert authenticator.token_manager.disable_ssl_verification is False
310336
del os.environ['IBM_CREDENTIALS_FILE']
311337

312338
file_path = os.path.join(os.path.dirname(__file__),

0 commit comments

Comments
 (0)