Skip to content

Commit 5f93f5e

Browse files
committed
Merge remote-tracking branch 'origin/HEAD' into observability-provider
2 parents 42912c5 + 8b07075 commit 5f93f5e

File tree

10 files changed

+50
-7
lines changed

10 files changed

+50
-7
lines changed

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/ParameterStoreConnectionStringProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,10 @@ public String getConnectionString(Map<Parameter, CharSequence> parameterValues)
107107
return connectionString;
108108
} catch (IOException e) {
109109
throw new IllegalStateException("Failed to read tnsnames.ora content", e);
110+
} catch (StringIndexOutOfBoundsException | IllegalStateException parseException) {
111+
throw new IllegalStateException(
112+
"Invalid or corrupted tnsnames.ora content. Ensure the secret contains valid, complete tnsnames.ora data (base64-encoded or plain text).", parseException
113+
);
110114
}
111115
}
112116
}

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/ParameterStorePasswordProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ public ParameterStorePasswordProvider() {
7373
*/
7474
@Override
7575
public char[] getPassword(Map<Parameter, CharSequence> parameterValues) {
76-
return getSecret(parameterValues).toCharArray();
76+
String password = getSecret(parameterValues);
77+
if (password == null || password.trim().isEmpty()) {
78+
throw new IllegalArgumentException("Password parameter content is blank.");
79+
}
80+
return password.toCharArray();
7781
}
7882
}

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/ParameterStoreUsernameProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,6 +73,10 @@ public ParameterStoreUsernameProvider() {
7373
*/
7474
@Override
7575
public String getUsername(Map<Parameter, CharSequence> parameterValues) {
76-
return getSecret(parameterValues);
76+
String username = getSecret(parameterValues);
77+
if (username == null || username.trim().isEmpty()) {
78+
throw new IllegalArgumentException("Username parameter content is blank.");
79+
}
80+
return username;
7781
}
7882
}

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/SecretsManagerConnectionStringProvider.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -113,6 +113,10 @@ public String getConnectionString(Map<Parameter, CharSequence> parameterValues)
113113
return connectionString;
114114
} catch (IOException e) {
115115
throw new IllegalStateException("Failed to read tnsnames.ora content", e);
116+
} catch (StringIndexOutOfBoundsException | IllegalStateException parseException) {
117+
throw new IllegalStateException(
118+
"Invalid or corrupted tnsnames.ora content. Ensure the secret contains valid, complete tnsnames.ora data (base64-encoded or plain text).", parseException
119+
);
116120
}
117121
}
118122

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/SecretsManagerPasswordProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ public SecretsManagerPasswordProvider() {
7272
*/
7373
@Override
7474
public char[] getPassword(Map<Parameter, CharSequence> parameterValues) {
75-
return getSecret(parameterValues).toCharArray();
75+
String password = getSecret(parameterValues);
76+
if (password == null || password.trim().isEmpty()) {
77+
throw new IllegalArgumentException("Password secret content is blank.");
78+
}
79+
return password.toCharArray();
7680
}
7781
}

ojdbc-provider-aws/src/main/java/oracle/jdbc/provider/aws/resource/SecretsManagerUsernameProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,6 +72,10 @@ public SecretsManagerUsernameProvider() {
7272
*/
7373
@Override
7474
public String getUsername(Map<Parameter, CharSequence> parameterValues) {
75-
return getSecret(parameterValues);
75+
String username = getSecret(parameterValues);
76+
if (username == null || username.trim().isEmpty()) {
77+
throw new IllegalArgumentException("Username secret content is blank.");
78+
}
79+
return username;
7680
}
7781
}

ojdbc-provider-common/src/main/java/oracle/jdbc/provider/util/WalletUtils.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -194,7 +194,11 @@ public static Credentials getCredentials(
194194
wallet.setWalletArray(walletBytes, walletPassword);
195195
}
196196
catch (IOException ioException) {
197-
throw new IllegalStateException("Failed to open wallet", ioException);
197+
String message = "Failed to open wallet. The wallet content may be corrupted or incomplete.";
198+
if (walletPassword != null) {
199+
message += " If a walletPassword is required and was provided, it may be incorrect.";
200+
}
201+
throw new IllegalStateException(message, ioException);
198202
}
199203

200204
try {

ojdbc-provider-gcp/src/main/java/oracle/jdbc/provider/gcp/resource/GcpSecretManagerPasswordProvider.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -63,6 +63,11 @@ public GcpSecretManagerPasswordProvider() {
6363
public char[] getPassword(Map<Parameter, CharSequence> parameterValues) {
6464
ByteString secret = getSecret(parameterValues);
6565
String password = secret.toStringUtf8();
66+
67+
if (password == null || password.trim().isEmpty()) {
68+
throw new IllegalArgumentException("Password secret content is blank.");
69+
}
70+
6671
return password.toCharArray();
6772
}
6873

ojdbc-provider-gcp/src/main/java/oracle/jdbc/provider/gcp/resource/GcpSecretManagerUsernameProvider.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,12 @@ public GcpSecretManagerUsernameProvider() {
6060

6161
@Override
6262
public String getUsername(Map<Parameter, CharSequence> parameterValues) {
63-
return getSecret(parameterValues).toStringUtf8();
63+
String username = getSecret(parameterValues).toStringUtf8();
64+
65+
if (username == null || username.trim().isEmpty()) {
66+
throw new IllegalArgumentException("Username secret content is blank");
67+
}
68+
return username;
6469
}
6570

6671
}

ojdbc-provider-oci/src/main/java/oracle/jdbc/provider/oci/resource/VaultConnectionStringProvider.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -119,7 +119,12 @@ public String getConnectionString(Map<Parameter, CharSequence> parameterValues)
119119
String secretValue = getVaultSecret(parameterValues)
120120
.getBase64Secret();
121121

122-
byte[] fileBytes = Base64.getDecoder().decode(secretValue);
122+
byte[] fileBytes;
123+
try {
124+
fileBytes = Base64.getDecoder().decode(secretValue);
125+
} catch (IllegalArgumentException e) {
126+
throw new IllegalStateException("Invalid base64 encoding in secret", e);
127+
}
123128

124129
TNSNames tnsNames;
125130
try (InputStream inputStream = new ByteArrayInputStream(fileBytes)) {

0 commit comments

Comments
 (0)