Skip to content

Commit bd2c5c3

Browse files
Fix readme file and rename some classes
1 parent 7574923 commit bd2c5c3

12 files changed

+53
-68
lines changed

ojdbc-provider-hashicorp/README.md

+1-1
Original file line numberDiff line numberDiff line change
@@ -89,7 +89,7 @@ The provider searches for the following parameters:
8989
<td>Yes</td>
9090
</tr>
9191
<tr>
92-
<td><code>VAULT_AUTH_PATH</code></td>
92+
<td><code>USERPASS_AUTH_PATH</code></td>
9393
<td>The authentication path in the Vault (default: <code>userpass</code>)</td>
9494
<td>No</td>
9595
</tr>

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/hcpvaultdedicated/DedicatedVaultResourceFactory.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -40,8 +40,8 @@
4040

4141
import oracle.jdbc.provider.factory.Resource;
4242
import oracle.jdbc.provider.factory.ResourceFactory;
43-
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultCredentials;
44-
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultCredentialsFactory;
43+
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultToken;
44+
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultTokenFactory;
4545
import oracle.jdbc.provider.parameter.ParameterSet;
4646

4747
/**
@@ -53,7 +53,7 @@ public abstract class DedicatedVaultResourceFactory<T> implements ResourceFactor
5353
@Override
5454
public final Resource<T> request(ParameterSet parameterSet) {
5555
// Retrieve the Vault credentials from the credentials factory
56-
DedicatedVaultCredentials credentials = DedicatedVaultCredentialsFactory
56+
DedicatedVaultToken credentials = DedicatedVaultTokenFactory
5757
.getInstance()
5858
.request(parameterSet)
5959
.getContent();
@@ -67,5 +67,5 @@ public final Resource<T> request(ParameterSet parameterSet) {
6767
}
6868

6969
public abstract Resource<T> request(
70-
DedicatedVaultCredentials credentials, ParameterSet parameterSet);
70+
DedicatedVaultToken credentials, ParameterSet parameterSet);
7171
}
Original file line numberDiff line numberDiff line change
@@ -47,7 +47,7 @@
4747
* requests to the Vault API.
4848
* </p>
4949
*/
50-
public final class DedicatedVaultCredentials {
50+
public final class DedicatedVaultToken {
5151

5252
private final String vaultToken;
5353

@@ -58,7 +58,7 @@ public final class DedicatedVaultCredentials {
5858
* @param vaultToken the token used to authenticate API requests to
5959
* the Vault. Must not be null or empty.
6060
*/
61-
public DedicatedVaultCredentials(String vaultToken) {
61+
public DedicatedVaultToken(String vaultToken) {
6262
this.vaultToken = vaultToken;
6363
}
6464
/**
Original file line numberDiff line numberDiff line change
@@ -65,15 +65,15 @@
6565

6666
/**
6767
* <p>
68-
* Factory for creating {@link DedicatedVaultCredentials} objects for authenticating
68+
* Factory for creating {@link DedicatedVaultToken} objects for authenticating
6969
* with Dedicated HashiCorp Vault.
7070
* </p><p>
7171
* This factory determines the appropriate authentication method based on the provided
7272
* {@link ParameterSet} and creates credentials accordingly.
7373
* </p>
7474
*/
75-
public final class DedicatedVaultCredentialsFactory
76-
implements ResourceFactory<DedicatedVaultCredentials> {
75+
public final class DedicatedVaultTokenFactory
76+
implements ResourceFactory<DedicatedVaultToken> {
7777

7878
/**
7979
* <p>
@@ -90,24 +90,24 @@ public final class DedicatedVaultCredentialsFactory
9090
// 1 minutes buffer for token expiration (in ms)
9191
private static final long TOKEN_TTL_BUFFER = 60_000;
9292

93-
private static final DedicatedVaultCredentialsFactory INSTANCE =
94-
new DedicatedVaultCredentialsFactory();
93+
private static final DedicatedVaultTokenFactory INSTANCE =
94+
new DedicatedVaultTokenFactory();
9595

96-
private DedicatedVaultCredentialsFactory() {
96+
private DedicatedVaultTokenFactory() {
9797
}
9898

9999
/**
100100
* Returns a singleton instance of {@code DedicatedVaultCredentialsFactory}.
101101
*
102102
* @return a singleton instance. Not null.
103103
*/
104-
public static DedicatedVaultCredentialsFactory getInstance() {
104+
public static DedicatedVaultTokenFactory getInstance() {
105105
return INSTANCE;
106106
}
107107

108108
@Override
109-
public Resource<DedicatedVaultCredentials> request(ParameterSet parameterSet) {
110-
DedicatedVaultCredentials credentials = getCredential(parameterSet);
109+
public Resource<DedicatedVaultToken> request(ParameterSet parameterSet) {
110+
DedicatedVaultToken credentials = getCredential(parameterSet);
111111
return Resource.createPermanentResource(credentials, true);
112112
}
113113

@@ -118,7 +118,7 @@ public Resource<DedicatedVaultCredentials> request(ParameterSet parameterSet) {
118118
* not be null.
119119
* @return the created {@code DedicatedVaultCredentials} instance.
120120
*/
121-
private static DedicatedVaultCredentials getCredential(ParameterSet parameterSet) {
121+
private static DedicatedVaultToken getCredential(ParameterSet parameterSet) {
122122
// Check which authentication method is requested
123123
DedicatedVaultAuthenticationMethod method =
124124
parameterSet.getRequired(AUTHENTICATION_METHOD);
@@ -127,22 +127,22 @@ private static DedicatedVaultCredentials getCredential(ParameterSet parameterSet
127127
case VAULT_TOKEN:
128128
return createTokenCredentials(parameterSet);
129129
case USERPASS:
130-
return createScopedToken(parameterSet, method, DedicatedVaultCredentialsFactory::createUserpassToken);
130+
return createScopedToken(parameterSet, method, DedicatedVaultTokenFactory::createUserpassToken);
131131
case APPROLE:
132-
return createScopedToken(parameterSet, method, DedicatedVaultCredentialsFactory::createAppRoleToken);
132+
return createScopedToken(parameterSet, method, DedicatedVaultTokenFactory::createAppRoleToken);
133133
default:
134134
throw new IllegalArgumentException(
135135
"Unrecognized authentication method: " + method);
136136
}
137137
}
138138

139139
/**
140-
* Creates {@link DedicatedVaultCredentials} using the Vault token.
140+
* Creates {@link DedicatedVaultToken} using the Vault token.
141141
*
142142
* @param parameterSet the set of parameters containing the Vault token. Must not be null.
143143
* @return the created {@code DedicatedVaultCredentials} instance.
144144
*/
145-
private static DedicatedVaultCredentials createTokenCredentials(ParameterSet parameterSet) {
145+
private static DedicatedVaultToken createTokenCredentials(ParameterSet parameterSet) {
146146
String vaultToken = getRequiredOrFallback(
147147
parameterSet,
148148
DedicatedVaultSecretsManagerFactory.VAULT_TOKEN,
@@ -153,25 +153,25 @@ private static DedicatedVaultCredentials createTokenCredentials(ParameterSet par
153153
throw new IllegalStateException("Vault Token not found in parameters, " +
154154
"system properties, or environment variables");
155155
}
156-
return new DedicatedVaultCredentials(vaultToken);
156+
return new DedicatedVaultToken(vaultToken);
157157
}
158158

159159
/**
160-
* Creates or retrieves a cached {@link DedicatedVaultCredentials} using
160+
* Creates or retrieves a cached {@link DedicatedVaultToken} using
161161
* a scoped token.
162162
*
163163
* @param parameterSet the set of parameters for the request.
164164
* @param method the authentication method being used.
165165
* @param generator the token generator function.
166166
* @return a {@code DedicatedVaultCredentials} instance.
167167
*/
168-
private static DedicatedVaultCredentials createScopedToken(
168+
private static DedicatedVaultToken createScopedToken(
169169
ParameterSet parameterSet,
170170
DedicatedVaultAuthenticationMethod method,
171171
TokenGenerator generator
172172
) {
173173
ParameterSet cacheKey = generateCacheKey(parameterSet, method);
174-
synchronized (DedicatedVaultCredentialsFactory.class) {
174+
synchronized (DedicatedVaultTokenFactory.class) {
175175
CachedToken cachedToken = tokenCache.get(cacheKey);
176176
long currentTime = System.currentTimeMillis();
177177

@@ -183,7 +183,7 @@ private static DedicatedVaultCredentials createScopedToken(
183183
CachedToken validCachedToken = tokenCache.get(cacheKey);
184184
if (validCachedToken.getToken() instanceof OpaqueAccessToken) {
185185
OpaqueAccessToken opaqueToken = (OpaqueAccessToken) validCachedToken.getToken();
186-
return new DedicatedVaultCredentials(opaqueToken.token().get());
186+
return new DedicatedVaultToken(opaqueToken.token().get());
187187
} else {
188188
throw new IllegalStateException("Cached token is not an instance of OpaqueAccessToken");
189189
}

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@
3939
package oracle.jdbc.provider.hashicorp.hcpvaultdedicated.configuration;
4040

4141
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultAuthenticationMethod;
42-
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultCredentialsFactory;
42+
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultTokenFactory;
4343
import oracle.jdbc.provider.parameter.ParameterSetParser;
4444

4545
/**
@@ -71,7 +71,7 @@ public static ParameterSetParser.Builder configureBuilder(ParameterSetParser.Bui
7171
// The parameter name is "AUTHENTICATION"
7272
"AUTHENTICATION",
7373
// Tied to HashicorpCredentialsFactory.AUTHENTICATION_METHOD
74-
DedicatedVaultCredentialsFactory.AUTHENTICATION_METHOD,
74+
DedicatedVaultTokenFactory.AUTHENTICATION_METHOD,
7575
// Default value if none is specified:
7676
DedicatedVaultAuthenticationMethod.VAULT_TOKEN,
7777
DedicatedVaultConfigurationParameters::parseAuthentication)

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

+2-2
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@
4242
import oracle.jdbc.provider.factory.Resource;
4343
import oracle.jdbc.provider.factory.ResourceFactory;
4444
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.DedicatedVaultResourceFactory;
45-
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultCredentials;
45+
import oracle.jdbc.provider.hashicorp.hcpvaultdedicated.authentication.DedicatedVaultToken;
4646
import oracle.jdbc.provider.parameter.Parameter;
4747
import oracle.jdbc.provider.parameter.ParameterSet;
4848
import oracle.sql.json.OracleJsonFactory;
@@ -148,7 +148,7 @@ public static ResourceFactory<String> getInstance() {
148148
}
149149

150150
@Override
151-
public Resource<String> request(DedicatedVaultCredentials credentials, ParameterSet parameterSet) {
151+
public Resource<String> request(DedicatedVaultToken credentials, ParameterSet parameterSet) {
152152
String secretPath = parameterSet.getRequired(SECRET_PATH);
153153
String vaultAddr = getRequiredOrFallback(parameterSet, VAULT_ADDR, "VAULT_ADDR");
154154

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/hcpvaultsecret/HcpVaultResourceFactory.java

+4-4
Original file line numberDiff line numberDiff line change
@@ -40,15 +40,15 @@
4040

4141
import oracle.jdbc.provider.factory.Resource;
4242
import oracle.jdbc.provider.factory.ResourceFactory;
43-
import oracle.jdbc.provider.hashicorp.hcpvaultsecret.authentication.HcpVaultCredentials;
44-
import oracle.jdbc.provider.hashicorp.hcpvaultsecret.authentication.HcpVaultCredentialsFactory;
43+
import oracle.jdbc.provider.hashicorp.hcpvaultsecret.authentication.HcpVaultSecretToken;
44+
import oracle.jdbc.provider.hashicorp.hcpvaultsecret.authentication.HcpVaultTokenFactory;
4545
import oracle.jdbc.provider.parameter.ParameterSet;
4646

4747
public abstract class HcpVaultResourceFactory<T> implements ResourceFactory<T> {
4848

4949
@Override
5050
public final Resource<T> request(ParameterSet parameterSet) {
51-
HcpVaultCredentials credentials = HcpVaultCredentialsFactory
51+
HcpVaultSecretToken credentials = HcpVaultTokenFactory
5252
.getInstance()
5353
.request(parameterSet)
5454
.getContent();
@@ -62,5 +62,5 @@ public final Resource<T> request(ParameterSet parameterSet) {
6262
}
6363

6464
public abstract Resource<T> request(
65-
HcpVaultCredentials credentials, ParameterSet parameterSet);
65+
HcpVaultSecretToken credentials, ParameterSet parameterSet);
6666
}

ojdbc-provider-hashicorp/src/main/java/oracle/jdbc/provider/hashicorp/hcpvaultsecret/authentication/HcpVaultOAuthClient.java

-8
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,6 @@
3838

3939
package oracle.jdbc.provider.hashicorp.hcpvaultsecret.authentication;
4040

41-
import oracle.jdbc.driver.oauth.JsonWebToken;
4241
import oracle.sql.json.OracleJsonFactory;
4342
import oracle.sql.json.OracleJsonObject;
4443

@@ -57,9 +56,6 @@
5756
*/
5857
public final class HcpVaultOAuthClient {
5958

60-
// Default TTL fallback in seconds
61-
private static long lastTokenTTL = 3_600;
62-
6359
private HcpVaultOAuthClient() {}
6460

6561
/**
@@ -98,7 +94,6 @@ public static String fetchHcpAccessToken(String clientId, String clientSecret) {
9894
.createJsonTextValue(new ByteArrayInputStream(jsonResponse.getBytes(StandardCharsets.UTF_8)))
9995
.asJsonObject();
10096

101-
System.out.println("fetching a new token "+ response.getString("access_token"));
10297
return response.getString("access_token");
10398
}
10499
} else {
@@ -113,7 +108,4 @@ public static String fetchHcpAccessToken(String clientId, String clientSecret) {
113108
}
114109
}
115110

116-
public static long getLastTokenTTL() {
117-
return lastTokenTTL;
118-
}
119111
}
+2-2
Original file line numberDiff line numberDiff line change
@@ -44,10 +44,10 @@
4444
* This class holds the API token obtained from the client_credentials OAuth2 flow.
4545
* </p>
4646
*/
47-
public final class HcpVaultCredentials {
47+
public final class HcpVaultSecretToken {
4848
private final String hcpApiToken;
4949

50-
public HcpVaultCredentials(String hcpApiToken) {
50+
public HcpVaultSecretToken(String hcpApiToken) {
5151
this.hcpApiToken = hcpApiToken;
5252
}
5353

+11-18
Original file line numberDiff line numberDiff line change
@@ -40,26 +40,24 @@
4040

4141
import oracle.jdbc.AccessToken;
4242
import oracle.jdbc.driver.oauth.JsonWebToken;
43-
import oracle.jdbc.provider.cache.CachedResourceFactory;
4443
import oracle.jdbc.provider.factory.Resource;
4544
import oracle.jdbc.provider.factory.ResourceFactory;
4645
import oracle.jdbc.provider.parameter.Parameter;
4746
import oracle.jdbc.provider.parameter.ParameterSet;
4847

49-
import java.time.OffsetDateTime;
5048
import java.util.function.Supplier;
5149

5250
import static oracle.jdbc.provider.parameter.Parameter.CommonAttribute.REQUIRED;
5351
import static oracle.jdbc.provider.util.ParameterUtil.getRequiredOrFallback;
5452

5553
/**
56-
* A factory for creating {@link HcpVaultCredentials} objects for HCP Vault Secrets.
54+
* A factory for creating {@link HcpVaultSecretToken} objects for HCP Vault Secrets.
5755
* <p>
5856
* This class implements the client_credentials flow for OAuth2 authentication, retrieving
5957
* an API token to interact with the HCP Vault Secrets API.
6058
* </p>
6159
*/
62-
public final class HcpVaultCredentialsFactory implements ResourceFactory<HcpVaultCredentials> {
60+
public final class HcpVaultTokenFactory implements ResourceFactory<HcpVaultSecretToken> {
6361

6462
/**
6563
* Parameter indicating the authentication method to use for HCP Vault Secrets.
@@ -76,26 +74,26 @@ public final class HcpVaultCredentialsFactory implements ResourceFactory<HcpVaul
7674
*/
7775
public static final Parameter<String> CLIENT_SECRET = Parameter.create(REQUIRED);
7876

79-
private static final HcpVaultCredentialsFactory INSTANCE = new HcpVaultCredentialsFactory();
77+
private static final HcpVaultTokenFactory INSTANCE = new HcpVaultTokenFactory();
8078

8179
/**
8280
* Cached supplier for tokens.
8381
*/
8482
private static Supplier<? extends AccessToken> cachedTokenSupplier;
8583

86-
private HcpVaultCredentialsFactory() {}
84+
private HcpVaultTokenFactory() {}
8785

88-
public static HcpVaultCredentialsFactory getInstance() {
86+
public static HcpVaultTokenFactory getInstance() {
8987
return INSTANCE;
9088
}
9189

9290
@Override
93-
public Resource<HcpVaultCredentials> request(ParameterSet parameterSet) {
94-
HcpVaultCredentials credentials = getCredential(parameterSet);
91+
public Resource<HcpVaultSecretToken> request(ParameterSet parameterSet) {
92+
HcpVaultSecretToken credentials = getCredential(parameterSet);
9593
return Resource.createPermanentResource(credentials, true);
9694
}
9795

98-
private HcpVaultCredentials getCredential(ParameterSet parameterSet) {
96+
private HcpVaultSecretToken getCredential(ParameterSet parameterSet) {
9997
HcpVaultAuthenticationMethod method = parameterSet.getRequired(AUTHENTICATION_METHOD);
10098

10199
switch (method) {
@@ -106,9 +104,9 @@ private HcpVaultCredentials getCredential(ParameterSet parameterSet) {
106104
}
107105
}
108106

109-
private HcpVaultCredentials createClientCredentials(ParameterSet parameterSet) {
107+
private HcpVaultSecretToken createClientCredentials(ParameterSet parameterSet) {
110108
if (cachedTokenSupplier == null) {
111-
synchronized (HcpVaultCredentialsFactory.class) {
109+
synchronized (HcpVaultTokenFactory.class) {
112110
cachedTokenSupplier = AccessToken.createJsonWebTokenCache(() -> {
113111
String clientId = getRequiredOrFallback(parameterSet, CLIENT_ID, "CLIENT_ID");
114112
String clientSecret = getRequiredOrFallback(parameterSet, CLIENT_SECRET, "CLIENT_SECRET");
@@ -119,14 +117,9 @@ private HcpVaultCredentials createClientCredentials(ParameterSet parameterSet) {
119117
}
120118
}
121119

122-
// Get the cached token
123120
AccessToken cachedToken = cachedTokenSupplier.get();
124-
125-
// Cast to JsonWebToken to access token and expiration methods
126121
JsonWebToken jwt = (JsonWebToken) cachedToken;
127-
128-
// Return credentials using the token
129-
return new HcpVaultCredentials(jwt.token().get());
122+
return new HcpVaultSecretToken(jwt.token().get());
130123
}
131124

132125
}

0 commit comments

Comments
 (0)