Skip to content

Commit aca5fcc

Browse files
xbauquethiranya911
authored andcommitted
Add given httpTransport in GooglePublicKeysManager (#151)
Construct the default GooglePublicKeysManager with the custom httpTransport. This avoid error due to proxy. Fixes #150
1 parent 2b3c781 commit aca5fcc

File tree

2 files changed

+14
-1
lines changed

2 files changed

+14
-1
lines changed

src/main/java/com/google/firebase/auth/FirebaseAuth.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,7 +66,10 @@ public class FirebaseAuth {
6666
private final Object lock;
6767

6868
private FirebaseAuth(FirebaseApp firebaseApp) {
69-
this(firebaseApp, FirebaseTokenVerifier.DEFAULT_KEY_MANAGER, Clock.SYSTEM);
69+
this(firebaseApp,
70+
FirebaseTokenVerifier.buildGooglePublicKeysManager(
71+
firebaseApp.getOptions().getHttpTransport()),
72+
Clock.SYSTEM);
7073
}
7174

7275
/**
@@ -210,12 +213,14 @@ private Task<FirebaseToken> verifyIdToken(final String token, final boolean chec
210213
return call(new Callable<FirebaseToken>() {
211214
@Override
212215
public FirebaseToken call() throws Exception {
216+
213217
FirebaseTokenVerifier firebaseTokenVerifier =
214218
new FirebaseTokenVerifier.Builder()
215219
.setProjectId(projectId)
216220
.setPublicKeysManager(googlePublicKeysManager)
217221
.setClock(clock)
218222
.build();
223+
219224
FirebaseToken firebaseToken = FirebaseToken.parse(jsonFactory, token);
220225

221226
// This will throw a FirebaseAuthException with details on how the token is invalid.

src/main/java/com/google/firebase/auth/internal/FirebaseTokenVerifier.java

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,7 @@
2020
import com.google.api.client.auth.openidconnect.IdToken.Payload;
2121
import com.google.api.client.auth.openidconnect.IdTokenVerifier;
2222
import com.google.api.client.googleapis.auth.oauth2.GooglePublicKeysManager;
23+
import com.google.api.client.http.HttpTransport;
2324
import com.google.api.client.http.javanet.NetHttpTransport;
2425
import com.google.api.client.json.gson.GsonFactory;
2526
import com.google.api.client.json.webtoken.JsonWebSignature.Header;
@@ -183,6 +184,13 @@ public String getProjectId() {
183184
return projectId;
184185
}
185186

187+
public static GooglePublicKeysManager buildGooglePublicKeysManager(HttpTransport transport) {
188+
return new GooglePublicKeysManager.Builder(transport, new GsonFactory())
189+
.setClock(Clock.SYSTEM)
190+
.setPublicCertsEncodedUrl(FirebaseTokenVerifier.CLIENT_CERT_URL)
191+
.build();
192+
}
193+
186194
/**
187195
* Builder for {@link FirebaseTokenVerifier}.
188196
*/

0 commit comments

Comments
 (0)