Skip to content

Commit

Permalink
Sample: Ignore empty session token (#1857)
Browse files Browse the repository at this point in the history
* Allow empty session token to be set without interfering

* Use getenv macro

* Set session token to empty string in test
  • Loading branch information
sirknightj authored and disa6302 committed Dec 5, 2023
1 parent 46d736e commit 89bb39d
Show file tree
Hide file tree
Showing 5 changed files with 22 additions and 15 deletions.
28 changes: 16 additions & 12 deletions samples/Common.c
Original file line number Diff line number Diff line change
Expand Up @@ -704,7 +704,7 @@ STATUS lookForSslCert(PSampleConfiguration* ppSampleConfiguration)
PSampleConfiguration pSampleConfiguration = *ppSampleConfiguration;

MEMSET(certName, 0x0, ARRAY_SIZE(certName));
pSampleConfiguration->pCaCertPath = getenv(CACERT_PATH_ENV_VAR);
pSampleConfiguration->pCaCertPath = GETENV(CACERT_PATH_ENV_VAR);

// if ca cert path is not set from the environment, try to use the one that cmake detected
if (pSampleConfiguration->pCaCertPath == NULL) {
Expand Down Expand Up @@ -748,22 +748,26 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE

#ifdef IOT_CORE_ENABLE_CREDENTIALS
PCHAR pIotCoreCredentialEndPoint, pIotCoreCert, pIotCorePrivateKey, pIotCoreRoleAlias, pIotCoreCertificateId, pIotCoreThingName;
CHK_ERR((pIotCoreCredentialEndPoint = getenv(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
CHK_ERR((pIotCoreCredentialEndPoint = GETENV(IOT_CORE_CREDENTIAL_ENDPOINT)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_CREDENTIAL_ENDPOINT must be set");
CHK_ERR((pIotCoreCert = getenv(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = getenv(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = getenv(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
CHK_ERR((pIotCoreCert = GETENV(IOT_CORE_CERT)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_CERT must be set");
CHK_ERR((pIotCorePrivateKey = GETENV(IOT_CORE_PRIVATE_KEY)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_PRIVATE_KEY must be set");
CHK_ERR((pIotCoreRoleAlias = GETENV(IOT_CORE_ROLE_ALIAS)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_ROLE_ALIAS must be set");
CHK_ERR((pIotCoreThingName = GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION, "AWS_IOT_CORE_THING_NAME must be set");
#else
CHK_ERR((pAccessKey = getenv(ACCESS_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_ACCESS_KEY_ID must be set");
CHK_ERR((pSecretKey = getenv(SECRET_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_SECRET_ACCESS_KEY must be set");
CHK_ERR((pAccessKey = GETENV(ACCESS_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_ACCESS_KEY_ID must be set");
CHK_ERR((pSecretKey = GETENV(SECRET_KEY_ENV_VAR)) != NULL, STATUS_INVALID_OPERATION, "AWS_SECRET_ACCESS_KEY must be set");
#endif

pSessionToken = getenv(SESSION_TOKEN_ENV_VAR);
pSessionToken = GETENV(SESSION_TOKEN_ENV_VAR);
if (IS_EMPTY_STRING(pSessionToken)) {
DLOGW("Session token is set but its value is empty. Ignoring.");
pSessionToken = NULL;
}

// If the env is set, we generate normal log files apart from filtered profile log files
// If not set, we generate only the filtered profile log files
if (NULL != getenv(ENABLE_FILE_LOGGING)) {
if (NULL != GETENV(ENABLE_FILE_LOGGING)) {
retStatus = createFileLoggerWithLevelFiltering(FILE_LOGGING_BUFFER_SIZE, MAX_NUMBER_OF_LOG_FILES, (PCHAR) FILE_LOGGER_LOG_FILE_DIRECTORY_PATH,
TRUE, TRUE, TRUE, LOG_LEVEL_PROFILE, NULL);

Expand All @@ -783,7 +787,7 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE
}
}

if ((pSampleConfiguration->channelInfo.pRegion = getenv(DEFAULT_REGION_ENV_VAR)) == NULL) {
if ((pSampleConfiguration->channelInfo.pRegion = GETENV(DEFAULT_REGION_ENV_VAR)) == NULL) {
pSampleConfiguration->channelInfo.pRegion = DEFAULT_AWS_REGION;
}

Expand Down Expand Up @@ -813,7 +817,7 @@ STATUS createSampleConfiguration(PCHAR channelName, SIGNALING_CHANNEL_ROLE_TYPE
pSampleConfiguration->channelInfo.version = CHANNEL_INFO_CURRENT_VERSION;
pSampleConfiguration->channelInfo.pChannelName = channelName;
#ifdef IOT_CORE_ENABLE_CREDENTIALS
if ((pIotCoreCertificateId = getenv(IOT_CORE_CERTIFICATE_ID)) != NULL) {
if ((pIotCoreCertificateId = GETENV(IOT_CORE_CERTIFICATE_ID)) != NULL) {
pSampleConfiguration->channelInfo.pChannelName = pIotCoreCertificateId;
}
#endif
Expand Down
2 changes: 1 addition & 1 deletion samples/kvsWebRTCClientMaster.c
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ INT32 main(INT32 argc, CHAR* argv[])
#endif

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_ERR((pChannelName = argc > 1 ? argv[1] : getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_THING_NAME must be set");
#else
pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME;
Expand Down
2 changes: 1 addition & 1 deletion samples/kvsWebRTCClientViewer.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,7 +51,7 @@ INT32 main(INT32 argc, CHAR* argv[])
#endif

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_ERR((pChannelName = argc > 1 ? argv[1] : getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_THING_NAME must be set");
#else
pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME;
Expand Down
2 changes: 1 addition & 1 deletion samples/kvsWebrtcClientMasterGstSample.c
Original file line number Diff line number Diff line change
Expand Up @@ -397,7 +397,7 @@ INT32 main(INT32 argc, CHAR* argv[])
signal(SIGINT, sigintHandler);

#ifdef IOT_CORE_ENABLE_CREDENTIALS
CHK_ERR((pChannelName = argc > 1 ? argv[1] : getenv(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
CHK_ERR((pChannelName = argc > 1 ? argv[1] : GETENV(IOT_CORE_THING_NAME)) != NULL, STATUS_INVALID_OPERATION,
"AWS_IOT_CORE_THING_NAME must be set");
#else
pChannelName = argc > 1 ? argv[1] : SAMPLE_CHANNEL_NAME;
Expand Down
3 changes: 3 additions & 0 deletions scripts/check-sample.sh
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,9 @@ then
exit 0
fi

# Set session token to empty string to check that it gets ignored
export AWS_SESSION_TOKEN=

# Set bash to print out every command that's running to the screen
# Set logging after checking credentials so that we don't leak them
set -xv
Expand Down

0 comments on commit 89bb39d

Please sign in to comment.