in core/src/main/java/com/google/cloud/sql/CredentialFactory.java [44:87]
default GoogleCredentials getCredentials() {
HttpRequestInitializer requestInitializer = this.create();
if (requestInitializer instanceof HttpCredentialsAdapter) {
HttpCredentialsAdapter adapter = (HttpCredentialsAdapter) requestInitializer;
Credentials c = adapter.getCredentials();
if (c instanceof GoogleCredentials) {
return (GoogleCredentials) c;
}
throw new RuntimeException(
String.format(
"Unable to determine GoogleCredential from HttpRequestInitializer: "
+ "HttpCredentialsAdapter did not create valid credentials. %s, %s",
requestInitializer.getClass().getName(), c));
}
if (requestInitializer instanceof Credential) {
Credential credential = (Credential) requestInitializer;
AccessToken accessToken =
new AccessToken(
credential.getAccessToken(),
credential.getExpirationTimeMilliseconds() != null
? Date.from(Instant.ofEpochMilli(credential.getExpirationTimeMilliseconds()))
: null);
return new GoogleCredentials(GoogleCredentials.newBuilder().setAccessToken(accessToken)) {
@Override
public AccessToken refreshAccessToken() throws IOException {
credential.refreshToken();
return new AccessToken(
credential.getAccessToken(),
credential.getExpirationTimeMilliseconds() != null
? Date.from(Instant.ofEpochMilli(credential.getExpirationTimeMilliseconds()))
: null);
}
};
}
throw new RuntimeException(
String.format(
"Unable to determine GoogleCredential from HttpRequestInitializer: "
+ "Unsupported credentials of type %s",
requestInitializer.getClass().getName()));
}