Skip to content

Commit 49d620b

Browse files
Cleanup and Update authentication parsing to use switch-case logic
1 parent 9d3a252 commit 49d620b

File tree

5 files changed

+27
-36
lines changed

5 files changed

+27
-36
lines changed

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/dedicated/authentication/DedicatedVaultAuthenticationMethod.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -51,5 +51,5 @@ public enum DedicatedVaultAuthenticationMethod {
5151
* environment variables, or system properties.
5252
* </p>
5353
*/
54-
TOKEN
54+
VAULT_TOKEN
5555
}

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/dedicated/authentication/DedicatedVaultCredentialsFactory.java

+2-4
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private static DedicatedVaultCredentials getCredential(ParameterSet parameterSet
100100
parameterSet.getRequired(AUTHENTICATION_METHOD);
101101

102102
switch (method) {
103-
case TOKEN:
103+
case VAULT_TOKEN:
104104
return createTokenCredentials(parameterSet);
105105
default:
106106
throw new IllegalArgumentException(
@@ -117,15 +117,13 @@ private static DedicatedVaultCredentials getCredential(ParameterSet parameterSet
117117
private static DedicatedVaultCredentials createTokenCredentials(ParameterSet parameterSet) {
118118
String vaultToken = getRequiredOrFallback(
119119
parameterSet,
120-
DedicatedVaultSecretsManagerFactory.VAULT_TOKEN,
121-
"VAULT_TOKEN"
120+
DedicatedVaultSecretsManagerFactory.VAULT_TOKEN, "VAULT_TOKEN"
122121
);
123122

124123
if (vaultToken == null || vaultToken.isEmpty()) {
125124
throw new IllegalStateException("Vault Token not found in parameters, " +
126125
"system properties, or environment variables");
127126
}
128-
129127
return new DedicatedVaultCredentials(vaultToken);
130128
}
131129

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/dedicated/configuration/DedicatedVaultConfigurationParameters.java

+7-5
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,7 @@ public static ParameterSetParser.Builder configureBuilder(ParameterSetParser.Bui
7373
// Tied to HashicorpCredentialsFactory.AUTHENTICATION_METHOD
7474
DedicatedVaultCredentialsFactory.AUTHENTICATION_METHOD,
7575
// Default value if none is specified:
76-
DedicatedVaultAuthenticationMethod.TOKEN,
76+
DedicatedVaultAuthenticationMethod.VAULT_TOKEN,
7777
DedicatedVaultConfigurationParameters::parseAuthentication)
7878
;
7979
}
@@ -86,10 +86,12 @@ public static ParameterSetParser.Builder configureBuilder(ParameterSetParser.Bui
8686
* @throws IllegalArgumentException if the value is unrecognized.
8787
*/
8888
private static DedicatedVaultAuthenticationMethod parseAuthentication(String value) {
89-
if ("TOKEN".equalsIgnoreCase(value) || "VAULT_TOKEN".equalsIgnoreCase(value)) {
90-
return DedicatedVaultAuthenticationMethod.TOKEN;
89+
switch (value.toUpperCase()) {
90+
case "VAULT_TOKEN":
91+
return DedicatedVaultAuthenticationMethod.VAULT_TOKEN;
92+
default:
93+
throw new IllegalArgumentException(
94+
"Unrecognized Hashicorp authentication value: " + value);
9195
}
92-
throw new IllegalArgumentException(
93-
"Unrecognized Hashicorp authentication value: " + value);
9496
}
9597
}

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/dedicated/configuration/DedicatedVaultSecretsManagerConfigurationProvider.java

+12-12
Original file line numberDiff line numberDiff line change
@@ -54,18 +54,18 @@ public class DedicatedVaultSecretsManagerConfigurationProvider extends OracleCon
5454

5555
static final ParameterSetParser PARAMETER_SET_PARSER =
5656
DedicatedVaultConfigurationParameters.configureBuilder(
57-
ParameterSetParser.builder()
58-
.addParameter("value",
59-
DedicatedVaultSecretsManagerFactory.SECRET_PATH)
60-
.addParameter("key",
61-
DedicatedVaultSecretsManagerFactory.KEY)
62-
.addParameter("VAULT_ADDR",
63-
DedicatedVaultSecretsManagerFactory.VAULT_ADDR)
64-
.addParameter("VAULT_TOKEN",
65-
DedicatedVaultSecretsManagerFactory.VAULT_TOKEN)
66-
.addParameter("FILED_NAME",
67-
DedicatedVaultSecretsManagerFactory.FIELD_NAME))
68-
.build();
57+
ParameterSetParser.builder()
58+
.addParameter("value",
59+
DedicatedVaultSecretsManagerFactory.SECRET_PATH)
60+
.addParameter("key",
61+
DedicatedVaultSecretsManagerFactory.KEY)
62+
.addParameter("VAULT_ADDR",
63+
DedicatedVaultSecretsManagerFactory.VAULT_ADDR)
64+
.addParameter("VAULT_TOKEN",
65+
DedicatedVaultSecretsManagerFactory.VAULT_TOKEN)
66+
.addParameter("FIELD_NAME",
67+
DedicatedVaultSecretsManagerFactory.FIELD_NAME))
68+
.build();
6969

7070
@Override
7171
public InputStream getJson(String secretPath) {

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/dedicated/secrets/DedicatedVaultSecretsManagerFactory.java

+5-14
Original file line numberDiff line numberDiff line change
@@ -50,11 +50,11 @@
5050
import oracle.sql.json.OracleJsonValue;
5151

5252
import java.io.ByteArrayInputStream;
53-
import java.io.ByteArrayOutputStream;
5453
import java.io.IOException;
5554
import java.io.InputStream;
5655
import java.net.HttpURLConnection;
5756
import java.net.URL;
57+
import java.util.Scanner;
5858

5959
import static java.nio.charset.StandardCharsets.UTF_8;
6060
import static oracle.jdbc.provider.parameter.Parameter.CommonAttribute.REQUIRED;
@@ -145,8 +145,10 @@ private static String fetchSecretFromVault(String vaultUrl, String token) {
145145
"Failed to fetch secret. HTTP error code: " + conn.getResponseCode());
146146
}
147147

148-
try (InputStream in = conn.getInputStream()) {
149-
return readStream(in);
148+
try (InputStream in = conn.getInputStream();
149+
Scanner scanner = new Scanner(in, UTF_8.name())) {
150+
scanner.useDelimiter("\\A");
151+
return scanner.hasNext() ? scanner.next() : "";
150152
} finally {
151153
conn.disconnect();
152154
}
@@ -156,17 +158,6 @@ private static String fetchSecretFromVault(String vaultUrl, String token) {
156158
}
157159
}
158160

159-
private static String readStream(InputStream in) throws IOException {
160-
ByteArrayOutputStream baos = new ByteArrayOutputStream();
161-
byte[] buffer = new byte[1024];
162-
int bytesRead;
163-
while ((bytesRead = in.read(buffer)) != -1) {
164-
baos.write(buffer, 0, bytesRead);
165-
}
166-
return new String(baos.toByteArray(), UTF_8);
167-
}
168-
169-
170161
/**
171162
* Extracts a specific key's value from a JSON-formatted secret.
172163
*

0 commit comments

Comments
 (0)