diff --git a/common/src/main/java/com/skyflow/errors/ErrorMessage.java b/common/src/main/java/com/skyflow/errors/ErrorMessage.java index 0084d727..2493e854 100644 --- a/common/src/main/java/com/skyflow/errors/ErrorMessage.java +++ b/common/src/main/java/com/skyflow/errors/ErrorMessage.java @@ -52,6 +52,7 @@ public enum ErrorMessage { JwtDecodeError("%s0 Validation error. Invalid access token. Verify your credentials."), MissingAccessToken("%s0 Validation error. Access token not present in the response from bearer token generation. Verify your credentials."), MissingTokenType("%s0 Validation error. Token type not present in the response from bearer token generation. Verify your credentials."), + BearerTokenExpired("%s0 Validation error. Bearer token is invalid or expired. Please provide a valid bearer token."), // Insert TableKeyError("%s0 Validation error. 'table' key is missing from the payload. Specify a 'table' key."), diff --git a/common/src/main/java/com/skyflow/logs/ErrorLogs.java b/common/src/main/java/com/skyflow/logs/ErrorLogs.java index 9b329ac8..2396ce83 100644 --- a/common/src/main/java/com/skyflow/logs/ErrorLogs.java +++ b/common/src/main/java/com/skyflow/logs/ErrorLogs.java @@ -129,8 +129,7 @@ public enum ErrorLogs { UNEXPECTED_ERROR_DURING_BATCH_PROCESSING("Unexpected error occurred during batch processing. Error: %s1"), - PROCESSING_ERROR_RESPONSE("Processing error response.") - ; + PROCESSING_ERROR_RESPONSE("Processing error response."); private final String log; diff --git a/common/src/main/java/com/skyflow/logs/InfoLogs.java b/common/src/main/java/com/skyflow/logs/InfoLogs.java index e54df467..03f80ac7 100644 --- a/common/src/main/java/com/skyflow/logs/InfoLogs.java +++ b/common/src/main/java/com/skyflow/logs/InfoLogs.java @@ -20,7 +20,8 @@ public enum InfoLogs { GET_SIGNED_DATA_TOKENS_TRIGGERED("getSignedDataTokens method triggered."), GET_SIGNED_DATA_TOKEN_SUCCESS("Signed data tokens generated."), REUSE_BEARER_TOKEN("Reusing bearer token."), - REUSE_API_KEY("Reusing api key."), + USE_CLIENT_PROVIDED_BEARER_TOKEN("Using bearer token provided by client."), + USE_API_KEY("Using api key."), GENERATE_BEARER_TOKEN_FROM_CREDENTIALS_TRIGGERED("generateBearerTokenFromCredentials method triggered."), GENERATE_BEARER_TOKEN_FROM_CREDENTIALS_STRING_TRIGGERED("generateBearerTokenFromCredentialString method triggered."), GENERATE_SIGNED_TOKENS_FROM_CREDENTIALS_FILE_TRIGGERED("generateSignedTokensFromCredentialsFile method triggered."), diff --git a/common/src/main/java/com/skyflow/utils/BaseUtils.java b/common/src/main/java/com/skyflow/utils/BaseUtils.java index c9278517..b7cf6bb0 100644 --- a/common/src/main/java/com/skyflow/utils/BaseUtils.java +++ b/common/src/main/java/com/skyflow/utils/BaseUtils.java @@ -9,6 +9,7 @@ import com.skyflow.logs.ErrorLogs; import com.skyflow.logs.InfoLogs; import com.skyflow.serviceaccount.util.BearerToken; +import com.skyflow.serviceaccount.util.Token; import com.skyflow.utils.logger.LogUtil; import org.apache.commons.codec.binary.Base64; @@ -43,23 +44,31 @@ public static String getVaultURL(String clusterId, Env env, String vaultDomain) } public static String generateBearerToken(Credentials credentials) throws SkyflowException { + String bearerToken; if (credentials.getPath() != null) { - return BearerToken.builder() + bearerToken = BearerToken.builder() .setCredentials(new File(credentials.getPath())) .setRoles(credentials.getRoles()) .setCtx(credentials.getContext()) .build() .getBearerToken(); } else if (credentials.getCredentialsString() != null) { - return BearerToken.builder() + bearerToken = BearerToken.builder() .setCredentials(credentials.getCredentialsString()) .setRoles(credentials.getRoles()) .setCtx(credentials.getContext()) .build() .getBearerToken(); } else { - return credentials.getToken(); + LogUtil.printInfoLog(InfoLogs.USE_CLIENT_PROVIDED_BEARER_TOKEN.getLog()); + bearerToken = credentials.getToken(); } + // check expiry for generated token + if (Token.isExpired(bearerToken)) { + LogUtil.printErrorLog(ErrorLogs.INVALID_BEARER_TOKEN.getLog()); + throw new SkyflowException(ErrorCode.INVALID_INPUT.getCode(), ErrorMessage.BearerTokenExpired.getMessage()); + } + return bearerToken; } public static PrivateKey getPrivateKeyFromPem(String pemKey) throws SkyflowException { diff --git a/v2/src/main/java/com/skyflow/ConnectionClient.java b/v2/src/main/java/com/skyflow/ConnectionClient.java index d3b20c3d..79541add 100644 --- a/v2/src/main/java/com/skyflow/ConnectionClient.java +++ b/v2/src/main/java/com/skyflow/ConnectionClient.java @@ -57,7 +57,7 @@ private void setApiKey() { if (apiKey == null) { apiKey = this.finalCredentials.getApiKey(); } else { - LogUtil.printInfoLog(InfoLogs.REUSE_API_KEY.getLog()); + LogUtil.printInfoLog(InfoLogs.USE_API_KEY.getLog()); } } diff --git a/v2/src/main/java/com/skyflow/VaultClient.java b/v2/src/main/java/com/skyflow/VaultClient.java index 7854a81b..e9981523 100644 --- a/v2/src/main/java/com/skyflow/VaultClient.java +++ b/v2/src/main/java/com/skyflow/VaultClient.java @@ -213,7 +213,7 @@ protected void setBearerToken() throws SkyflowException { prioritiseCredentials(); Validations.validateCredentials(this.finalCredentials); if (this.finalCredentials.getApiKey() != null) { - LogUtil.printInfoLog(InfoLogs.REUSE_API_KEY.getLog()); + LogUtil.printInfoLog(InfoLogs.USE_API_KEY.getLog()); token = this.finalCredentials.getApiKey(); } else if (Token.isExpired(token)) { LogUtil.printInfoLog(InfoLogs.BEARER_TOKEN_EXPIRED.getLog()); diff --git a/v2/src/main/java/com/skyflow/logs/ErrorLogs.java b/v2/src/main/java/com/skyflow/logs/ErrorLogs.java deleted file mode 100644 index 3415860c..00000000 --- a/v2/src/main/java/com/skyflow/logs/ErrorLogs.java +++ /dev/null @@ -1,140 +0,0 @@ -package com.skyflow.logs; - -public enum ErrorLogs { - // Client initialization - VAULT_CONFIG_EXISTS("Vault config with vault ID %s1 already exists."), - VAULT_CONFIG_DOES_NOT_EXIST("Vault config with vault ID %s1 doesn't exist."), - VAULT_ID_IS_REQUIRED("Invalid vault config. Vault ID is required."), - EMPTY_VAULT_ID("Invalid vault config. Vault ID can not be empty."), - CLUSTER_ID_IS_REQUIRED("Invalid vault config. Cluster ID is required."), - EMPTY_CLUSTER_ID("Invalid vault config. Cluster ID can not be empty."), - CONNECTION_CONFIG_EXISTS("Connection config with connection ID %s1 already exists."), - CONNECTION_CONFIG_DOES_NOT_EXIST("Connection config with connection ID %s1 doesn't exist."), - CONNECTION_ID_IS_REQUIRED("Invalid connection config. Connection ID is required."), - EMPTY_CONNECTION_ID("Invalid connection config. Connection ID can not be empty."), - CONNECTION_URL_IS_REQUIRED("Invalid connection config. Connection URL is required."), - EMPTY_CONNECTION_URL("Invalid connection config. Connection URL can not be empty."), - INVALID_CONNECTION_URL("Invalid connection config. Connection URL is not a valid URL."), - MULTIPLE_TOKEN_GENERATION_MEANS_PASSED("Invalid credentials. Only one of 'path', 'credentialsString', 'token' or 'apiKey' is allowed."), - NO_TOKEN_GENERATION_MEANS_PASSED("Invalid credentials. Any one of 'path', 'credentialsString', 'token' or 'apiKey' is required."), - EMPTY_CREDENTIALS_PATH("Invalid credentials. Credentials path can not be empty."), - EMPTY_CREDENTIALS_STRING("Invalid credentials. Credentials string can not be empty."), - EMPTY_TOKEN_VALUE("Invalid credentials. Token can not be empty."), - EMPTY_API_KEY_VALUE("Invalid credentials. Api key can not be empty."), - INVALID_API_KEY("Invalid credentials. Api key is invalid."), - EMPTY_ROLES("Invalid credentials. Roles can not be empty."), - EMPTY_OR_NULL_ROLE_IN_ROLES("Invalid credentials. Role can not be null or empty in roles at index %s1."), - EMPTY_OR_NULL_CONTEXT("Invalid credentials. Context can not be empty."), - - // Bearer token generation - INVALID_BEARER_TOKEN("Bearer token is invalid or expired."), - INVALID_CREDENTIALS_FILE("Credentials file is either null or an invalid file."), - INVALID_CREDENTIALS_STRING("Credentials string is either null or empty."), - INVALID_CREDENTIALS_FILE_FORMAT("Credentials file is not in a valid JSON format."), - CREDENTIALS_FILE_NOT_FOUND("Credentials file not found at specified path."), - INVALID_CREDENTIALS_STRING_FORMAT("Credentials string is not in a valid JSON string format."), - PRIVATE_KEY_IS_REQUIRED("Private key is required."), - CLIENT_ID_IS_REQUIRED("Client ID is required."), - KEY_ID_IS_REQUIRED("Key ID is required."), - TOKEN_URI_IS_REQUIRED("Token URI is required."), - INVALID_TOKEN_URI("Invalid value for token URI in credentials."), - JWT_INVALID_FORMAT("Private key is not in a valid format."), - INVALID_ALGORITHM("Algorithm for parsing private key is invalid or does not exist."), - INVALID_KEY_SPEC("Unable to parse RSA private key."), - BEARER_TOKEN_REJECTED("Bearer token request resulted in failure."), - SIGNED_DATA_TOKENS_REJECTED("Signed data tokens request resulted in failure."), - - // Vault api interfaces - TABLE_IS_REQUIRED("Invalid %s1 request. Table is required."), - EMPTY_TABLE_NAME("Invalid %s1 request. Table name can not be empty."), - VALUES_IS_REQUIRED("Invalid %s1 request. Values are required."), - EMPTY_VALUES("Invalid %s1 request. Values can not be empty."), - EMPTY_OR_NULL_VALUE_IN_VALUES("Invalid %s1 request. Value can not be null or empty in values for key \"%s2\"."), - EMPTY_OR_NULL_KEY_IN_VALUES("Invalid %s1 request. Key can not be null or empty in values"), - EMPTY_UPSERT("Invalid %s1 request. Upsert can not be empty."), - HOMOGENOUS_NOT_SUPPORTED_WITH_UPSERT("Invalid %s1 request. Homogenous is not supported when upsert is passed."), - TOKENS_NOT_ALLOWED_WITH_TOKEN_MODE_DISABLE("Invalid %s1 request. Tokens are not allowed when tokenMode is DISABLE."), - TOKENS_REQUIRED_WITH_TOKEN_MODE("Invalid %s1 request. Tokens are required when tokenMode is %s2."), - EMPTY_TOKENS("Invalid %s1 request. Tokens can not be empty."), - EMPTY_OR_NULL_VALUE_IN_TOKENS("Invalid %s1 request. Value can not be null or empty in tokens for key \"%s2\"."), - EMPTY_OR_NULL_KEY_IN_TOKENS("Invalid %s1 request. Key can not be null or empty in tokens."), - INSUFFICIENT_TOKENS_PASSED_FOR_TOKEN_MODE_ENABLE_STRICT("Invalid %s1 request. For tokenMode as ENABLE_STRICT, tokens should be passed for all fields."), - MISMATCH_OF_FIELDS_AND_TOKENS("Invalid %s1 request. Keys for values and tokens are not matching."), - INSERT_RECORDS_REJECTED("Insert request resulted in failure."), - DETOKENIZE_DATA_REQUIRED("Invalid %s1 request. Detokenize data is required."), - EMPTY_DETOKENIZE_DATA("Invalid %s1 request. Detokenize data can not be empty."), - EMPTY_OR_NULL_TOKEN_IN_DETOKENIZE_DATA("Invalid %s1 request. Token can not be null or empty in detokenize data at index %s2."), - REDACTION_IS_REQUIRED("Invalid %s1 request. Redaction is required."), - DETOKENIZE_REQUEST_REJECTED("Detokenize request resulted in failure."), - IDS_IS_REQUIRED("Invalid %s1 request. Ids are required."), - EMPTY_IDS("Invalid %s1 request. Ids can not be empty."), - EMPTY_OR_NULL_ID_IN_IDS("Invalid %s1 request. Id can not be null or empty in ids at index %s2."), - EMPTY_FIELDS("Invalid %s1 request. Fields can not be empty."), - EMPTY_OR_NULL_FIELD_IN_FIELDS("Invalid %s1 request. Field can not be null or empty in fields at index %s2."), - TOKENIZATION_NOT_SUPPORTED_WITH_REDACTION("Invalid %s1 request. Return tokens is not supported when redaction is applied."), - TOKENIZATION_SUPPORTED_ONLY_WITH_IDS("Invalid %s1 request. Return tokens is not supported when column name and values are passed."), - EMPTY_OFFSET("Invalid %s1 request. Offset can not be empty."), - EMPTY_LIMIT("Invalid %s1 request. Limit can not be empty."), - NEITHER_IDS_NOR_COLUMN_NAME_PASSED("Invalid %s1 request. Neither ids nor column name and values are passed."), - BOTH_IDS_AND_COLUMN_NAME_PASSED("Invalid %s1 request. Both ids and column name and values are passed."), - COLUMN_NAME_IS_REQUIRED("Invalid %s1 request. Column name is required when column values are passed."), - EMPTY_COLUMN_NAME("Invalid %s1 request. Column name can not be empty."), - COLUMN_VALUES_IS_REQUIRED_GET("Invalid %s1 request. Column values are required when column name is passed."), - EMPTY_COLUMN_VALUES("Invalid %s1 request. Column values can not be empty."), - EMPTY_OR_NULL_COLUMN_VALUE_IN_COLUMN_VALUES("Invalid %s1 request. Column value can not by null or empty in column values at index %s2."), - GET_REQUEST_REJECTED("Get request resulted in failure."), - DATA_IS_REQUIRED("Invalid %s1 request. Data is required."), - EMPTY_DATA("Invalid %s1 request. Data can not be empty."), - SKYFLOW_ID_IS_REQUIRED("Invalid %s1 request. Skyflow Id is required."), - INVALID_SKYFLOW_ID_TYPE("Invalid %s1 request. Skyflow Id should of type String."), - EMPTY_SKYFLOW_ID("Invalid %s1 request. Skyflow Id can not be empty."), - UPDATE_REQUEST_REJECTED("Update request resulted in failure."), - QUERY_IS_REQUIRED("Invalid %s1 request. Query is required."), - EMPTY_QUERY("Invalid %s1 request. Query can not be empty."), - QUERY_REQUEST_REJECTED("Query request resulted in failure."), - COLUMN_VALUES_IS_REQUIRED_TOKENIZE("Invalid %s1 request. ColumnValues are required."), - EMPTY_OR_NULL_COLUMN_GROUP_IN_COLUMN_VALUES("Invalid %s1 request. Column group can not be null or empty in column values at index %s2."), - TOKENIZE_REQUEST_REJECTED("Tokenize request resulted in failure."), - DELETE_REQUEST_REJECTED("Delete request resulted in failure."), - - // invoke connection interface - INVOKE_CONNECTION_INVALID_CONNECTION_URL("Invalid %s1 request. Connection URL is not a valid URL."), - EMPTY_REQUEST_HEADERS("Invalid %s1 request. Request headers can not be empty."), - INVALID_REQUEST_HEADERS("Invalid %s1 request. Request header can not be null or empty in request headers."), - EMPTY_PATH_PARAMS("Invalid %s1 request. Path params can not be empty."), - INVALID_PATH_PARAM("Invalid %s1 request. Path parameter can not be null or empty in path params."), - EMPTY_QUERY_PARAMS("Invalid %s1 request. Query params can not be empty."), - INVALID_QUERY_PARAM("Invalid %s1 request. Query parameter can not be null or empty in query params."), - EMPTY_REQUEST_BODY("Invalid %s1 request. Request body can not be empty."), - INVALID_REQUEST_BODY("Invalid %s1 request. Request body can not be empty."), - INVOKE_CONNECTION_REQUEST_REJECTED("Invoke connection request resulted in failure."), - - - // detect interface - INVALID_TEXT_IN_DEIDENTIFY("Invalid %s1 request. The text field is required and must be a non-empty string. Specify a valid text."), - DEIDENTIFY_TEXT_REQUEST_REJECTED("DeIdentify text request resulted in failure."), - INVALID_TEXT_IN_REIDENTIFY("Invalid %s1 request. The text field is required and must be a non-empty string. Specify a valid text."), - REIDENTIFY_TEXT_REQUEST_REJECTED("ReIdentify text request resulted in failure."), - DEIDENTIFY_FILE_REQUEST_REJECTED("DeIdentify file request resulted in failure."), - GET_DETECT_RUN_REQUEST_REJECTED("Get detect run request resulted in failure."), - INVALID_NULL_FILE_IN_DEIDENTIFY_FILE("Invalid %s1 request. The file field is required and must not be null. Specify a valid file."), - FILE_NOT_FOUND_TO_DEIDENTIFY("Invalid %s1 request. The file field is required and must not be empty. Specify a valid file."), - FILE_NOT_READABLE_TO_DEIDENTIFY("Invalid %s1 request. The file is not readable. Please check the file permissions or path."), - INVALID_PIXEL_DENSITY_TO_DEIDENTIFY_FILE("Invalid %s1 request. Pixel density must be a positive integer greater than 0. Specify a valid pixel density."), - INVALID_MAX_RESOLUTION("Invalid %s1 request. Max resolution must be a positive integer greater than 0. Specify a valid max resolution."), - INVALID_BLEEP_TO_DEIDENTIFY_AUDIO("Invalid %s1 request. Specify a valid bleep as AudioBleep"), - OUTPUT_DIRECTORY_NOT_FOUND("Invalid %s1 request. The output directory does not exist. Please specify a valid output directory."), - INVALID_PERMISSIONS_FOR_OUTPUT_DIRECTORY("Invalid %s1 request. The output directory is not writable. Please check the permissions or specify a valid output directory."), - EMPTY_FILE_AND_FILE_PATH_IN_DEIDENTIFY_FILE("Invalid %s1 request. The file and file path fields are both empty. Specify a valid file object or file path."), - ; - - private final String log; - - ErrorLogs(String log) { - this.log = log; - } - - public final String getLog() { - return log; - } -} diff --git a/v2/src/main/java/com/skyflow/logs/InfoLogs.java b/v2/src/main/java/com/skyflow/logs/InfoLogs.java deleted file mode 100644 index efd81a49..00000000 --- a/v2/src/main/java/com/skyflow/logs/InfoLogs.java +++ /dev/null @@ -1,105 +0,0 @@ -package com.skyflow.logs; - -public enum InfoLogs { - // Client initialization - CLIENT_INITIALIZED("Initialized skyflow client."), - VALIDATING_VAULT_CONFIG("Validating vault config."), - VALIDATING_CONNECTION_CONFIG("Validating connection config."), - UNABLE_TO_GENERATE_SDK_METRIC("Unable to generate %s1 metric."), - VAULT_CONTROLLER_INITIALIZED("Initialized vault controller with vault ID %s1."), - DETECT_CONTROLLER_INITIALIZED("Initialized detect controller with vault ID %s1."), - CONNECTION_CONTROLLER_INITIALIZED("Initialized connection controller with connection ID %s1."), - LOGGER_SETUP_DONE("Set up logger."), - CURRENT_LOG_LEVEL("Current log level is %s1."), - - // Bearer token generation - EMPTY_BEARER_TOKEN("Bearer token is empty."), - BEARER_TOKEN_EXPIRED("Bearer token is expired."), - GET_BEARER_TOKEN_TRIGGERED("getBearerToken method triggered."), - GET_BEARER_TOKEN_SUCCESS("Bearer token generated."), - GET_SIGNED_DATA_TOKENS_TRIGGERED("getSignedDataTokens method triggered."), - GET_SIGNED_DATA_TOKEN_SUCCESS("Signed data tokens generated."), - REUSE_BEARER_TOKEN("Reusing bearer token."), - REUSE_API_KEY("Reusing api key."), - GENERATE_BEARER_TOKEN_FROM_CREDENTIALS_TRIGGERED("generateBearerTokenFromCredentials method triggered."), - GENERATE_BEARER_TOKEN_FROM_CREDENTIALS_STRING_TRIGGERED("generateBearerTokenFromCredentialString method triggered."), - GENERATE_SIGNED_TOKENS_FROM_CREDENTIALS_FILE_TRIGGERED("generateSignedTokensFromCredentialsFile method triggered."), - GENERATE_SIGNED_TOKENS_FROM_CREDENTIALS_STRING_TRIGGERED("generateSignedTokensFromCredentialsString method triggered."), - - // Insert interface - INSERT_TRIGGERED("Insert method triggered."), - VALIDATE_INSERT_REQUEST("Validating insert request."), - INSERT_REQUEST_RESOLVED("Insert request resolved."), - INSERT_SUCCESS("Data inserted."), - - // Detokenize interface - DETOKENIZE_TRIGGERED("Detokenize method triggered."), - VALIDATE_DETOKENIZE_REQUEST("Validating detokenize request."), - DETOKENIZE_REQUEST_RESOLVED("Detokenize request resolved."), - DETOKENIZE_PARTIAL_SUCCESS("Data detokenized partially."), - DETOKENIZE_SUCCESS("Data detokenized."), - - // Get interface - GET_TRIGGERED("Get method triggered."), - VALIDATE_GET_REQUEST("Validating get request."), - GET_REQUEST_RESOLVED("Get request resolved."), - GET_SUCCESS("Data revealed."), - - // Update interface - UPDATE_TRIGGERED("Update method triggered."), - VALIDATE_UPDATE_REQUEST("Validating update request."), - UPDATE_REQUEST_RESOLVED("Update request resolved."), - UPDATE_SUCCESS("Data updated."), - - // Delete interface - DELETE_TRIGGERED("Delete method triggered."), - VALIDATING_DELETE_REQUEST("Validating delete request."), - DELETE_REQUEST_RESOLVED("Delete request resolved."), - DELETE_SUCCESS("Data deleted."), - - // Query interface - QUERY_TRIGGERED("Query method triggered."), - VALIDATING_QUERY_REQUEST("Validating query request."), - QUERY_REQUEST_RESOLVED("Query request resolved."), - QUERY_SUCCESS("Query executed."), - - // Tokenize interface - TOKENIZE_TRIGGERED("Tokenize method triggered."), - VALIDATING_TOKENIZE_REQUEST("Validating tokenize request."), - TOKENIZE_REQUEST_RESOLVED("Tokenize request resolved."), - TOKENIZE_SUCCESS("Data tokenized."), - - - // Invoke connection interface - INVOKE_CONNECTION_TRIGGERED("Invoke connection method triggered."), - VALIDATING_INVOKE_CONNECTION_REQUEST("Validating invoke connection request."), - INVOKE_CONNECTION_REQUEST_RESOLVED("Invoke connection request resolved."), - - // detect - VALIDATE_DEIDENTIFY_TEXT_REQUEST("Validating deidentify text request."), - DEIDENTIFY_TEXT_SUCCESS("Text data de-identified."), - DEIDENTIFY_TEXT_TRIGGERED("DeIdentify text method triggered."), - DEIDENTIFY_TEXT_REQUEST_RESOLVED("DeIdentify text request resolved."), - VALIDATE_REIDENTIFY_TEXT_REQUEST("Validating reidentify text request."), - REIDENTIFY_TEXT_TRIGGERED("ReIdentify text method triggered."), - REIDENTIFY_TEXT_REQUEST_RESOLVED("ReIdentify text request resolved."), - DEIDENTIFY_FILE_TRIGGERED("DeIdentify file method triggered."), - VALIDATE_DEIDENTIFY_FILE_REQUEST("Validating deidentify file request."), - DEIDENTIFY_FILE_REQUEST_RESOLVED("DeIdentify file request resolved."), - DEIDENTIFY_FILE_SUCCESS("File deidentified successfully."), - GET_DETECT_RUN_TRIGGERED("Get detect run method triggered."), - VALIDATE_GET_DETECT_RUN_REQUEST("Validating get detect run request."), - REIDENTIFY_TEXT_SUCCESS("Text data re-identified."), - ; - - - private final String log; - - InfoLogs(String log) { - this.log = log; - } - - public final String getLog() { - return log; - } -} diff --git a/v2/test/java/com/skyflow/utils/UtilsTests.java b/v2/test/java/com/skyflow/utils/UtilsTests.java index 4f1bba41..00543567 100644 --- a/v2/test/java/com/skyflow/utils/UtilsTests.java +++ b/v2/test/java/com/skyflow/utils/UtilsTests.java @@ -122,9 +122,10 @@ public void testGenerateBearerTokenWithToken() { credentials.setContext(context); credentials.setRoles(roles); String bearerToken = Utils.generateBearerToken(credentials); - Assert.assertEquals(token, bearerToken); + Assert.fail(EXCEPTION_NOT_THROWN); } catch (SkyflowException e) { - Assert.fail(INVALID_EXCEPTION_THROWN); + Assert.assertEquals(ErrorCode.INVALID_INPUT.getCode(), e.getHttpCode()); + Assert.assertEquals(ErrorMessage.BearerTokenExpired.getMessage(), e.getMessage()); } } diff --git a/v3/src/main/java/com/skyflow/VaultClient.java b/v3/src/main/java/com/skyflow/VaultClient.java index 8e1147a6..c3ad1af4 100644 --- a/v3/src/main/java/com/skyflow/VaultClient.java +++ b/v3/src/main/java/com/skyflow/VaultClient.java @@ -64,8 +64,10 @@ protected void setBearerToken() throws SkyflowException { prioritiseCredentials(); Validations.validateCredentials(this.finalCredentials); if (this.finalCredentials.getApiKey() != null) { - LogUtil.printInfoLog(InfoLogs.REUSE_API_KEY.getLog()); + LogUtil.printInfoLog(InfoLogs.USE_API_KEY.getLog()); token = this.finalCredentials.getApiKey(); + } else if (token == null || token.trim().isEmpty()) { + token = Utils.generateBearerToken(this.finalCredentials); } else if (Token.isExpired(token)) { LogUtil.printInfoLog(InfoLogs.BEARER_TOKEN_EXPIRED.getLog()); token = Utils.generateBearerToken(this.finalCredentials); @@ -73,9 +75,7 @@ protected void setBearerToken() throws SkyflowException { LogUtil.printInfoLog(InfoLogs.REUSE_BEARER_TOKEN.getLog()); } updateExecutorInHTTP(); // update executor - // token need to add in http client this.apiClient = this.apiClientBuilder.build(); - } private void updateVaultURL() {