|
17 | 17 | import com.google.api.gax.core.FixedCredentialsProvider; |
18 | 18 | import com.google.api.gax.grpc.InstantiatingGrpcChannelProvider; |
19 | 19 | import com.google.api.gax.rpc.ClientSettings; |
| 20 | +import com.google.api.gax.rpc.FixedHeaderProvider; |
| 21 | +import com.google.common.base.Strings; |
20 | 22 | import com.google.common.collect.Lists; |
| 23 | +import java.util.HashMap; |
| 24 | +import java.util.Map; |
21 | 25 |
|
22 | 26 | /** |
23 | 27 | * Updates a fleet engine {@link ClientSettings.Builder} so that a valid Fleet Engine JWT is |
@@ -56,11 +60,28 @@ public B updateBuilder(B builder) { |
56 | 60 | "Transport channel provider must be of type InstantiatingGrpcChannelProvider"); |
57 | 61 | } |
58 | 62 |
|
| 63 | + Map<String, String> headers = new HashMap<>(); |
| 64 | + if (builder.getHeaderProvider() != null && builder.getHeaderProvider().getHeaders() != null) { |
| 65 | + headers.putAll(builder.getHeaderProvider().getHeaders()); |
| 66 | + } |
| 67 | + String libraryUserAgent = "java-fleetengine-auth/"; |
| 68 | + if (this.getClass().getPackage().getImplementationVersion() != null) { |
| 69 | + libraryUserAgent = libraryUserAgent + this.getClass().getPackage().getImplementationVersion(); |
| 70 | + } |
| 71 | + String userAgent = headers.get("user-agent"); |
| 72 | + if (Strings.isNullOrEmpty(userAgent)) { |
| 73 | + userAgent = libraryUserAgent; |
| 74 | + } else { |
| 75 | + userAgent = userAgent + " " + libraryUserAgent; |
| 76 | + } |
| 77 | + headers.put("user-agent", userAgent); |
| 78 | + |
59 | 79 | // Reuse existing channel provider |
60 | 80 | InstantiatingGrpcChannelProvider provider = |
61 | 81 | (InstantiatingGrpcChannelProvider) builder.getTransportChannelProvider(); |
62 | 82 | return builder |
63 | 83 | .setCredentialsProvider(FixedCredentialsProvider.create(null)) |
| 84 | + .setHeaderProvider(FixedHeaderProvider.create(headers)) |
64 | 85 | .setTransportChannelProvider( |
65 | 86 | provider.toBuilder() |
66 | 87 | .setInterceptorProvider( |
|
0 commit comments