googleapis / googleapis/google-cloud-java

[google-auth-library-java] How to set a timeout for GoogleCredentials?

Offen
#12,615 7 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen
priority: p3 type: feature request
Vorherrschende Sprache
Java
Sterne
2.1k
Forks
1.2k
Ø Merge
1 T. 23 Std.
Gemergte PRs (30 T.)
157

Beschreibung

`GoogleCredentials` can be initialized with an optional `HttpTransportFactory`. But this doesn't provide any means of setting the connection and read timeout for the HTTP requests made by the credentials implementation. Is there a way to set these timeout values for `GoogleCredentials`?

More context: In the Google HTTP client, the recommended way to set timeouts is via an `HttpRequestInitializer` that gets passed into the `HttpRequestFactory`.

```
myTransport.createRequestFactory(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) throws IOException {
request.setConnectTimeout(10000);
request.setReadTimeout(10000);
}
});
```

But currently there appears to be no way to specify a request initializer for `GoogleCredentials`. As a result, there's no simple way to configure the timeouts for the HTTP requests made by this implementation.

This is a somewhat critical issue, since `GoogleCredentials` get invoked before any other HTTP requests are made by the client. The default timeout settings of `GoogleCredentials` essentially mask and override any timeout values set in the client.

```
myTransport.createRequestFactory(new HttpRequestInitializer() {
@Override
public void initialize(HttpRequest request) throws IOException {
credentials.initialize(request);
request.setConnectTimeout(10000);
request.setReadTimeout(10000);
}
});
```

In the above example you expect requests to timeout after 10 seconds. But because credentials are in the initializer chain, it won't timeout until 60s (the default).

Beitragsleitfaden

Beitragsleitfaden öffnen

Rechercherichtung

Start with GoogleCredentials and its HttpTransportFactory path, then inspect how HttpRequestInitializer is applied to the HttpRequestFactory. The change is complete when callers can configure connection and read timeouts for credential HTTP requests without those settings being overridden by the credentials initializer.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Bewertung

Tech-Stack
google-cloud, java
Bereich
authentication
Issue-Typ
Feature
Schwierigkeit
4/5
Geschätzter Aufwand
3-5 Tage
Aktivitätsstatus
Veraltet
Klarheit
Größtenteils klar
Anfängerfreundlichkeit
35/100

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.