Comments (3)
I suggest we do (1) and (2).
We should encourage people who are explicitly trying to access the AccessToken
to do something like:
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
AccessToken token = credentials.refreshAccessToken();
// OR
credentials.refresh();
AccessToken token = credentials.getAccessToken();
For (3), there are a few issues:
OAuth2Credentials#getAccessToken()
would need to either addthrows IOException
or try to refresh and then silently swallow any exceptions.- For any swallowed exception, you will miss out on the contents of the exception and not realize that we are potentially making extra auth requests
- Anyone who is currently using
getAccessToken()
does not expect to be making IO calls. This is a behavior change and will break downstream users.
from google-auth-library-java.
Adding a refreshIfExpired()
that smartly refreshes a possibly expired token would make the way to do this:
GoogleCredentials credentials = GoogleCredentials.getApplicationDefault();
credentials.refreshIfExpired();
AccessToken token = credentials.getAccessToken();
This should be easier to reason about then calling credentials.getRequestMetadata(uri)
which is what the client libraries call before each request (which will load or refresh the credentials if necessary).
from google-auth-library-java.
Next release will contain this method and updated documentation.
from google-auth-library-java.
Related Issues (20)
- Add reactor Bindings HOT 3
- The horror of chain reaction (GoogleCredentials) HOT 1
- Allow usage of ExternalAccountCredentials custom implementation HOT 2
- unchecked casts are bad practice, but allowed globally in pom.xml
- Add native image support for credentials and appengine modules
- impersonated_service_account not recognized HOT 1
- ExternalAccountCredentials serialization is broken HOT 1
- com.google.firebase.messaging.FirebaseMessagingException: Unknown error while making a remote service call: Error getting access token for service account: Unable to tunnel through proxy. Proxy returns "HTTP/1.1 405 Method Not Allowed", HOT 2
- [kms]: Missing credentials leads to misleading exception and pointless retry loop HOT 4
- DefaultPKCEProvider challenge rejected HOT 4
- Method implementation and logic isOnGAEStandard7() is incorrect for java21 jetty which does not define the old jetty logging class. HOT 2
- External documentation is outdated - latest published version is 1.20.0 HOT 1
- AppEngineCredential depends on legacy bundled service HOT 4
- Failing while building google-auth-library-java version v1.6.0 using mvn clean install HOT 6
- Migrating old GoogleCredential object to new GoogleCredentials object for OAuth HOT 4
- ComputeEngineCredentials.createScoped copies existing AccessToken HOT 4
- Previously, I use google-cloud-vertexai 0.3. I can't use service account json in 1.3. HOT 1
- Workload identity federation doesn't support full aws credential sources. HOT 2
- ComputeEngineCredentials does not handle error response from the metadata server correctly HOT 1
- Google Play Publisher with Proxy Authentication
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from google-auth-library-java.