From 48f009dcb8b3b80e25879bad872346ae67662a83 Mon Sep 17 00:00:00 2001 From: hiranya911 Date: Thu, 30 Jul 2020 10:58:46 -0700 Subject: [PATCH 1/2] chore: Support for specifying query parameters in HttpRequestInfo --- .../firebase/auth/AbstractFirebaseAuth.java | 6 +- .../google/firebase/auth/FirebaseAuth.java | 34 +----- .../firebase/auth/FirebaseUserManager.java | 114 ++++++++++-------- .../auth/internal/AuthHttpClient.java | 21 +--- .../multitenancy/FirebaseTenantClient.java | 29 +++-- .../firebase/internal/HttpRequestInfo.java | 26 ++-- .../projectmanagement/HttpHelper.java | 2 +- .../firebase/auth/FirebaseAuthTest.java | 4 +- .../auth/FirebaseUserManagerTest.java | 6 +- 9 files changed, 110 insertions(+), 132 deletions(-) diff --git a/src/main/java/com/google/firebase/auth/AbstractFirebaseAuth.java b/src/main/java/com/google/firebase/auth/AbstractFirebaseAuth.java index ee3e67b15..8fb20c557 100644 --- a/src/main/java/com/google/firebase/auth/AbstractFirebaseAuth.java +++ b/src/main/java/com/google/firebase/auth/AbstractFirebaseAuth.java @@ -96,11 +96,7 @@ public FirebaseTokenVerifier get() { new Supplier() { @Override public FirebaseUserManager get() { - return FirebaseUserManager - .builder() - .setFirebaseApp(app) - .setTenantId(tenantId) - .build(); + return FirebaseUserManager.createUserManager(app, tenantId); } }); } diff --git a/src/main/java/com/google/firebase/auth/FirebaseAuth.java b/src/main/java/com/google/firebase/auth/FirebaseAuth.java index f44bd2343..264111ae1 100644 --- a/src/main/java/com/google/firebase/auth/FirebaseAuth.java +++ b/src/main/java/com/google/firebase/auth/FirebaseAuth.java @@ -19,14 +19,12 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import com.google.api.client.util.Clock; import com.google.api.core.ApiFuture; import com.google.common.annotations.VisibleForTesting; import com.google.common.base.Strings; import com.google.common.base.Supplier; import com.google.firebase.FirebaseApp; import com.google.firebase.ImplFirebaseTrampolines; -import com.google.firebase.auth.internal.FirebaseTokenFactory; import com.google.firebase.auth.multitenancy.TenantManager; import com.google.firebase.internal.CallableOperation; import com.google.firebase.internal.FirebaseService; @@ -214,37 +212,7 @@ FirebaseTokenVerifier getSessionCookieVerifier(boolean checkRevoked) { protected void doDestroy() { } private static FirebaseAuth fromApp(final FirebaseApp app) { - return new FirebaseAuth( - AbstractFirebaseAuth.builder() - .setFirebaseApp(app) - .setTokenFactory( - new Supplier() { - @Override - public FirebaseTokenFactory get() { - return FirebaseTokenUtils.createTokenFactory(app, Clock.SYSTEM); - } - }) - .setIdTokenVerifier( - new Supplier() { - @Override - public FirebaseTokenVerifier get() { - return FirebaseTokenUtils.createIdTokenVerifier(app, Clock.SYSTEM); - } - }) - .setCookieVerifier( - new Supplier() { - @Override - public FirebaseTokenVerifier get() { - return FirebaseTokenUtils.createSessionCookieVerifier(app, Clock.SYSTEM); - } - }) - .setUserManager( - new Supplier() { - @Override - public FirebaseUserManager get() { - return FirebaseUserManager.builder().setFirebaseApp(app).build(); - } - })); + return new FirebaseAuth(AbstractFirebaseAuth.builderFromAppAndTenantId(app, null)); } private static class FirebaseAuthService extends FirebaseService { diff --git a/src/main/java/com/google/firebase/auth/FirebaseUserManager.java b/src/main/java/com/google/firebase/auth/FirebaseUserManager.java index d00cd2463..554d0179a 100644 --- a/src/main/java/com/google/firebase/auth/FirebaseUserManager.java +++ b/src/main/java/com/google/firebase/auth/FirebaseUserManager.java @@ -19,8 +19,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import com.google.api.client.http.GenericUrl; -import com.google.api.client.http.HttpMethods; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponseInterceptor; import com.google.api.client.json.GenericJson; @@ -44,9 +42,9 @@ import com.google.firebase.auth.internal.ListSamlProviderConfigsResponse; import com.google.firebase.auth.internal.UploadAccountResponse; import com.google.firebase.internal.ApiClientUtils; +import com.google.firebase.internal.HttpRequestInfo; import com.google.firebase.internal.NonNull; import com.google.firebase.internal.Nullable; - import java.util.Collection; import java.util.HashSet; import java.util.List; @@ -60,7 +58,7 @@ * @see * Google Identity Toolkit */ -class FirebaseUserManager { +final class FirebaseUserManager { static final int MAX_LIST_PROVIDER_CONFIGS_RESULTS = 100; static final int MAX_GET_ACCOUNTS_BATCH_SIZE = 100; @@ -81,13 +79,12 @@ class FirebaseUserManager { private final AuthHttpClient httpClient; private FirebaseUserManager(Builder builder) { - FirebaseApp app = checkNotNull(builder.app, "FirebaseApp must not be null"); - String projectId = ImplFirebaseTrampolines.getProjectId(app); + String projectId = builder.projectId; checkArgument(!Strings.isNullOrEmpty(projectId), "Project ID is required to access the auth service. Use a service account credential or " + "set the project ID explicitly via FirebaseOptions. Alternatively you can also " + "set the project ID via the GOOGLE_CLOUD_PROJECT environment variable."); - this.jsonFactory = app.getOptions().getJsonFactory(); + this.jsonFactory = checkNotNull(builder.jsonFactory, "JsonFactory must not be null"); final String idToolkitUrlV1 = String.format(ID_TOOLKIT_URL, "v1", projectId); final String idToolkitUrlV2 = String.format(ID_TOOLKIT_URL, "v2", projectId); final String tenantId = builder.tenantId; @@ -100,9 +97,7 @@ private FirebaseUserManager(Builder builder) { this.idpConfigMgtBaseUrl = idToolkitUrlV2 + "/tenants/" + tenantId; } - HttpRequestFactory requestFactory = builder.requestFactory == null - ? ApiClientUtils.newAuthorizedRequestFactory(app) : builder.requestFactory; - this.httpClient = new AuthHttpClient(jsonFactory, requestFactory); + this.httpClient = new AuthHttpClient(jsonFactory, builder.requestFactory); } @VisibleForTesting @@ -182,9 +177,10 @@ DownloadAccountResponse listUsers(int maxResults, String pageToken) throws Fireb builder.put("nextPageToken", pageToken); } - GenericUrl url = new GenericUrl(userMgtBaseUrl + "/accounts:batchGet"); - url.putAll(builder.build()); - return httpClient.sendRequest(HttpMethods.GET, url, null, DownloadAccountResponse.class); + String url = userMgtBaseUrl + "/accounts:batchGet"; + HttpRequestInfo requestInfo = HttpRequestInfo.buildGetRequest(url) + .addAllParameters(builder.build()); + return httpClient.sendRequest(requestInfo, DownloadAccountResponse.class); } UserImportResult importUsers(UserImportRequest request) throws FirebaseAuthException { @@ -218,8 +214,9 @@ String getEmailActionLink(EmailLinkType type, String email, private UserRecord lookupUserAccount( Map payload, String identifier) throws FirebaseAuthException { - IncomingHttpResponse response = httpClient.sendRequest( - HttpMethods.POST, new GenericUrl(userMgtBaseUrl + "/accounts:lookup"), payload); + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPostRequest( + userMgtBaseUrl + "/accounts:lookup", payload); + IncomingHttpResponse response = httpClient.sendRequest(requestInfo); GetAccountInfoResponse parsed = httpClient.parse(response, GetAccountInfoResponse.class); if (parsed.getUsers() == null || parsed.getUsers().isEmpty()) { throw new FirebaseAuthException(ErrorCode.NOT_FOUND, @@ -234,44 +231,46 @@ private UserRecord lookupUserAccount( OidcProviderConfig createOidcProviderConfig( OidcProviderConfig.CreateRequest request) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + "/oauthIdpConfigs"); - url.set("oauthIdpConfigId", request.getProviderId()); - return httpClient.sendRequest("POST", url, request.getProperties(), OidcProviderConfig.class); + String url = idpConfigMgtBaseUrl + "/oauthIdpConfigs"; + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPostRequest(url, request.getProperties()) + .addParameter("oauthIdpConfigId", request.getProviderId()); + return httpClient.sendRequest(requestInfo, OidcProviderConfig.class); } SamlProviderConfig createSamlProviderConfig( SamlProviderConfig.CreateRequest request) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + "/inboundSamlConfigs"); - url.set("inboundSamlConfigId", request.getProviderId()); - return httpClient.sendRequest("POST", url, request.getProperties(), SamlProviderConfig.class); + String url = idpConfigMgtBaseUrl + "/inboundSamlConfigs"; + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPostRequest(url, request.getProperties()) + .addParameter("inboundSamlConfigId", request.getProviderId()); + return httpClient.sendRequest(requestInfo, SamlProviderConfig.class); } OidcProviderConfig updateOidcProviderConfig(OidcProviderConfig.UpdateRequest request) throws FirebaseAuthException { Map properties = request.getProperties(); - GenericUrl url = - new GenericUrl(idpConfigMgtBaseUrl + getOidcUrlSuffix(request.getProviderId())); - url.put("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); - return httpClient.sendRequest("PATCH", url, properties, OidcProviderConfig.class); + String url = idpConfigMgtBaseUrl + getOidcUrlSuffix(request.getProviderId()); + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPatchRequest(url, properties) + .addParameter("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); + return httpClient.sendRequest(requestInfo, OidcProviderConfig.class); } SamlProviderConfig updateSamlProviderConfig(SamlProviderConfig.UpdateRequest request) throws FirebaseAuthException { Map properties = request.getProperties(); - GenericUrl url = - new GenericUrl(idpConfigMgtBaseUrl + getSamlUrlSuffix(request.getProviderId())); - url.put("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); - return httpClient.sendRequest("PATCH", url, properties, SamlProviderConfig.class); + String url = idpConfigMgtBaseUrl + getSamlUrlSuffix(request.getProviderId()); + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPatchRequest(url, properties) + .addParameter("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); + return httpClient.sendRequest(requestInfo, SamlProviderConfig.class); } OidcProviderConfig getOidcProviderConfig(String providerId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + getOidcUrlSuffix(providerId)); - return httpClient.sendRequest("GET", url, null, OidcProviderConfig.class); + String url = idpConfigMgtBaseUrl + getOidcUrlSuffix(providerId); + return httpClient.sendRequest(HttpRequestInfo.buildGetRequest(url), OidcProviderConfig.class); } SamlProviderConfig getSamlProviderConfig(String providerId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + getSamlUrlSuffix(providerId)); - return httpClient.sendRequest("GET", url, null, SamlProviderConfig.class); + String url = idpConfigMgtBaseUrl + getSamlUrlSuffix(providerId); + return httpClient.sendRequest(HttpRequestInfo.buildGetRequest(url), SamlProviderConfig.class); } ListOidcProviderConfigsResponse listOidcProviderConfigs(int maxResults, String pageToken) @@ -284,9 +283,10 @@ ListOidcProviderConfigsResponse listOidcProviderConfigs(int maxResults, String p builder.put("nextPageToken", pageToken); } - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + "/oauthIdpConfigs"); - url.putAll(builder.build()); - return httpClient.sendRequest("GET", url, null, ListOidcProviderConfigsResponse.class); + String url = idpConfigMgtBaseUrl + "/oauthIdpConfigs"; + HttpRequestInfo requestInfo = HttpRequestInfo.buildGetRequest(url) + .addAllParameters(builder.build()); + return httpClient.sendRequest(requestInfo, ListOidcProviderConfigsResponse.class); } ListSamlProviderConfigsResponse listSamlProviderConfigs(int maxResults, String pageToken) @@ -299,19 +299,20 @@ ListSamlProviderConfigsResponse listSamlProviderConfigs(int maxResults, String p builder.put("nextPageToken", pageToken); } - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + "/inboundSamlConfigs"); - url.putAll(builder.build()); - return httpClient.sendRequest("GET", url, null, ListSamlProviderConfigsResponse.class); + String url = idpConfigMgtBaseUrl + "/inboundSamlConfigs"; + HttpRequestInfo requestInfo = HttpRequestInfo.buildGetRequest(url) + .addAllParameters(builder.build()); + return httpClient.sendRequest(requestInfo, ListSamlProviderConfigsResponse.class); } void deleteOidcProviderConfig(String providerId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + getOidcUrlSuffix(providerId)); - httpClient.sendRequest("DELETE", url, null, GenericJson.class); + String url = idpConfigMgtBaseUrl + getOidcUrlSuffix(providerId); + httpClient.sendRequest(HttpRequestInfo.buildDeleteRequest(url)); } void deleteSamlProviderConfig(String providerId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(idpConfigMgtBaseUrl + getSamlUrlSuffix(providerId)); - httpClient.sendRequest("DELETE", url, null, GenericJson.class); + String url = idpConfigMgtBaseUrl + getSamlUrlSuffix(providerId); + httpClient.sendRequest(HttpRequestInfo.buildDeleteRequest(url)); } private static String getOidcUrlSuffix(String providerId) { @@ -327,8 +328,8 @@ private static String getSamlUrlSuffix(String providerId) { private T post(String path, Object content, Class clazz) throws FirebaseAuthException { checkArgument(!Strings.isNullOrEmpty(path), "path must not be null or empty"); checkNotNull(content, "content must not be null for POST requests"); - GenericUrl url = new GenericUrl(userMgtBaseUrl + path); - return httpClient.sendRequest(HttpMethods.POST, url, content, clazz); + String url = userMgtBaseUrl + path; + return httpClient.sendRequest(HttpRequestInfo.buildJsonPostRequest(url, content), clazz); } static class UserImportRequest extends GenericJson { @@ -371,18 +372,30 @@ enum EmailLinkType { PASSWORD_RESET, } + static FirebaseUserManager createUserManager(FirebaseApp app, String tenantId) { + return FirebaseUserManager.builder() + .setProjectId(ImplFirebaseTrampolines.getProjectId(app)) + .setTenantId(tenantId) + .setHttpRequestFactory(ApiClientUtils.newAuthorizedRequestFactory(app)) + .setJsonFactory(app.getOptions().getJsonFactory()) + .build(); + } + static Builder builder() { return new Builder(); } static class Builder { - private FirebaseApp app; + private String projectId; private String tenantId; private HttpRequestFactory requestFactory; + private JsonFactory jsonFactory; + + private Builder() { } - Builder setFirebaseApp(FirebaseApp app) { - this.app = app; + public Builder setProjectId(String projectId) { + this.projectId = projectId; return this; } @@ -396,6 +409,11 @@ Builder setHttpRequestFactory(HttpRequestFactory requestFactory) { return this; } + public Builder setJsonFactory(JsonFactory jsonFactory) { + this.jsonFactory = jsonFactory; + return this; + } + FirebaseUserManager build() { return new FirebaseUserManager(this); } diff --git a/src/main/java/com/google/firebase/auth/internal/AuthHttpClient.java b/src/main/java/com/google/firebase/auth/internal/AuthHttpClient.java index cc6cfc97b..69e9b2c13 100644 --- a/src/main/java/com/google/firebase/auth/internal/AuthHttpClient.java +++ b/src/main/java/com/google/firebase/auth/internal/AuthHttpClient.java @@ -16,7 +16,6 @@ package com.google.firebase.auth.internal; -import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponseInterceptor; import com.google.api.client.json.JsonFactory; @@ -25,7 +24,6 @@ import com.google.firebase.auth.FirebaseAuthException; import com.google.firebase.internal.ErrorHandlingHttpClient; import com.google.firebase.internal.HttpRequestInfo; -import com.google.firebase.internal.Nullable; import com.google.firebase.internal.SdkUtils; import java.util.Map; import java.util.Set; @@ -65,21 +63,14 @@ public void setInterceptor(HttpResponseInterceptor interceptor) { this.httpClient.setInterceptor(interceptor); } - public IncomingHttpResponse sendRequest( - String method, GenericUrl url, @Nullable Object content) throws FirebaseAuthException { - HttpRequestInfo request = HttpRequestInfo.buildJsonRequest(method, url, content) - .addHeader(CLIENT_VERSION_HEADER, CLIENT_VERSION); - return httpClient.send(request); + public T sendRequest(HttpRequestInfo request, Class clazz) throws FirebaseAuthException { + IncomingHttpResponse response = this.sendRequest(request); + return this.parse(response, clazz); } - public T sendRequest( - String method, - GenericUrl url, - @Nullable Object content, - Class clazz) throws FirebaseAuthException { - - IncomingHttpResponse response = this.sendRequest(method, url, content); - return this.parse(response, clazz); + public IncomingHttpResponse sendRequest(HttpRequestInfo request) throws FirebaseAuthException { + request.addHeader(CLIENT_VERSION_HEADER, CLIENT_VERSION); + return httpClient.send(request); } public T parse(IncomingHttpResponse response, Class clazz) throws FirebaseAuthException { diff --git a/src/main/java/com/google/firebase/auth/multitenancy/FirebaseTenantClient.java b/src/main/java/com/google/firebase/auth/multitenancy/FirebaseTenantClient.java index 1f6256cff..6628070e3 100644 --- a/src/main/java/com/google/firebase/auth/multitenancy/FirebaseTenantClient.java +++ b/src/main/java/com/google/firebase/auth/multitenancy/FirebaseTenantClient.java @@ -19,7 +19,6 @@ import static com.google.common.base.Preconditions.checkArgument; import static com.google.common.base.Preconditions.checkNotNull; -import com.google.api.client.http.GenericUrl; import com.google.api.client.http.HttpRequestFactory; import com.google.api.client.http.HttpResponseInterceptor; import com.google.api.client.json.GenericJson; @@ -33,6 +32,7 @@ import com.google.firebase.auth.internal.AuthHttpClient; import com.google.firebase.auth.internal.ListTenantsResponse; import com.google.firebase.internal.ApiClientUtils; +import com.google.firebase.internal.HttpRequestInfo; import java.util.Map; final class FirebaseTenantClient { @@ -63,25 +63,28 @@ void setInterceptor(HttpResponseInterceptor interceptor) { } Tenant getTenant(String tenantId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(tenantMgtBaseUrl + getTenantUrlSuffix(tenantId)); - return httpClient.sendRequest("GET", url, null, Tenant.class); + String url = tenantMgtBaseUrl + getTenantUrlSuffix(tenantId); + return httpClient.sendRequest(HttpRequestInfo.buildGetRequest(url), Tenant.class); } Tenant createTenant(Tenant.CreateRequest request) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(tenantMgtBaseUrl + "/tenants"); - return httpClient.sendRequest("POST", url, request.getProperties(), Tenant.class); + String url = tenantMgtBaseUrl + "/tenants"; + return httpClient.sendRequest( + HttpRequestInfo.buildJsonPostRequest(url, request.getProperties()), + Tenant.class); } Tenant updateTenant(Tenant.UpdateRequest request) throws FirebaseAuthException { Map properties = request.getProperties(); - GenericUrl url = new GenericUrl(tenantMgtBaseUrl + getTenantUrlSuffix(request.getTenantId())); - url.put("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); - return httpClient.sendRequest("PATCH", url, properties, Tenant.class); + String url = tenantMgtBaseUrl + getTenantUrlSuffix(request.getTenantId()); + HttpRequestInfo requestInfo = HttpRequestInfo.buildJsonPatchRequest(url, properties) + .addParameter("updateMask", Joiner.on(",").join(AuthHttpClient.generateMask(properties))); + return httpClient.sendRequest(requestInfo, Tenant.class); } void deleteTenant(String tenantId) throws FirebaseAuthException { - GenericUrl url = new GenericUrl(tenantMgtBaseUrl + getTenantUrlSuffix(tenantId)); - httpClient.sendRequest("DELETE", url, null, GenericJson.class); + String url = tenantMgtBaseUrl + getTenantUrlSuffix(tenantId); + httpClient.sendRequest(HttpRequestInfo.buildDeleteRequest(url), GenericJson.class); } ListTenantsResponse listTenants(int maxResults, String pageToken) @@ -94,9 +97,9 @@ ListTenantsResponse listTenants(int maxResults, String pageToken) builder.put("pageToken", pageToken); } - GenericUrl url = new GenericUrl(tenantMgtBaseUrl + "/tenants"); - url.putAll(builder.build()); - return httpClient.sendRequest("GET", url, null, ListTenantsResponse.class); + HttpRequestInfo requestInfo = HttpRequestInfo.buildGetRequest(tenantMgtBaseUrl + "/tenants") + .addAllParameters(builder.build()); + return httpClient.sendRequest(requestInfo, ListTenantsResponse.class); } private static String getTenantUrlSuffix(String tenantId) { diff --git a/src/main/java/com/google/firebase/internal/HttpRequestInfo.java b/src/main/java/com/google/firebase/internal/HttpRequestInfo.java index cb687b7b1..375e332fb 100644 --- a/src/main/java/com/google/firebase/internal/HttpRequestInfo.java +++ b/src/main/java/com/google/firebase/internal/HttpRequestInfo.java @@ -61,6 +61,16 @@ public HttpRequestInfo addAllHeaders(Map headers) { return this; } + public HttpRequestInfo addParameter(String name, Object value) { + this.url.put(name, value); + return this; + } + + public HttpRequestInfo addAllParameters(Map params) { + this.url.putAll(params); + return this; + } + public static HttpRequestInfo buildGetRequest(String url) { return buildRequest(HttpMethods.GET, url, null); } @@ -71,26 +81,20 @@ public static HttpRequestInfo buildDeleteRequest(String url) { public static HttpRequestInfo buildRequest( String method, String url, @Nullable HttpContent content) { - return buildRequest(method, new GenericUrl(url), content); - } - - public static HttpRequestInfo buildRequest( - String method, GenericUrl url, @Nullable HttpContent content) { - return new HttpRequestInfo(method, url, content, null); + return new HttpRequestInfo(method, new GenericUrl(url), content, null); } public static HttpRequestInfo buildJsonPostRequest(String url, @Nullable Object content) { return buildJsonRequest(HttpMethods.POST, url, content); } - public static HttpRequestInfo buildJsonRequest( - String method, String url, @Nullable Object content) { - return buildJsonRequest(method, new GenericUrl(url), content); + public static HttpRequestInfo buildJsonPatchRequest(String url, @Nullable Object content) { + return buildJsonRequest(HttpMethods.PATCH, url, content); } public static HttpRequestInfo buildJsonRequest( - String method, GenericUrl url, @Nullable Object content) { - return new HttpRequestInfo(method, url, null, content); + String method, String url, @Nullable Object content) { + return new HttpRequestInfo(method, new GenericUrl(url), null, content); } HttpRequest newHttpRequest( diff --git a/src/main/java/com/google/firebase/projectmanagement/HttpHelper.java b/src/main/java/com/google/firebase/projectmanagement/HttpHelper.java index f9ec62a3d..fb29f7b86 100644 --- a/src/main/java/com/google/firebase/projectmanagement/HttpHelper.java +++ b/src/main/java/com/google/firebase/projectmanagement/HttpHelper.java @@ -94,7 +94,7 @@ void makeDeleteRequest( requestIdentifierDescription); } - IncomingHttpResponse makeRequest( + private IncomingHttpResponse makeRequest( HttpRequestInfo baseRequest, T parsedResponseInstance, String requestIdentifier, diff --git a/src/test/java/com/google/firebase/auth/FirebaseAuthTest.java b/src/test/java/com/google/firebase/auth/FirebaseAuthTest.java index bfbb77364..66c004c0f 100644 --- a/src/test/java/com/google/firebase/auth/FirebaseAuthTest.java +++ b/src/test/java/com/google/firebase/auth/FirebaseAuthTest.java @@ -499,7 +499,7 @@ private FirebaseAuth getAuthForIdTokenVerification( private FirebaseAuth getAuthForIdTokenVerification( FirebaseApp app, Supplier tokenVerifierSupplier) { - FirebaseUserManager userManager = FirebaseUserManager.builder().setFirebaseApp(app).build(); + FirebaseUserManager userManager = FirebaseUserManager.createUserManager(app, null); return new FirebaseAuth( AbstractFirebaseAuth.builder() .setFirebaseApp(app) @@ -526,7 +526,7 @@ private FirebaseAuth getAuthForSessionCookieVerification( private FirebaseAuth getAuthForSessionCookieVerification( FirebaseApp app, Supplier tokenVerifierSupplier) { - FirebaseUserManager userManager = FirebaseUserManager.builder().setFirebaseApp(app).build(); + FirebaseUserManager userManager = FirebaseUserManager.createUserManager(app, null); return new FirebaseAuth( AbstractFirebaseAuth.builder() .setFirebaseApp(app) diff --git a/src/test/java/com/google/firebase/auth/FirebaseUserManagerTest.java b/src/test/java/com/google/firebase/auth/FirebaseUserManagerTest.java index 38c316645..c1352f090 100644 --- a/src/test/java/com/google/firebase/auth/FirebaseUserManagerTest.java +++ b/src/test/java/com/google/firebase/auth/FirebaseUserManagerTest.java @@ -45,14 +45,12 @@ import com.google.firebase.FirebaseOptions; import com.google.firebase.TestOnlyImplFirebaseTrampolines; import com.google.firebase.auth.FirebaseUserManager.EmailLinkType; -import com.google.firebase.auth.internal.AuthHttpClient; import com.google.firebase.auth.multitenancy.TenantAwareFirebaseAuth; import com.google.firebase.auth.multitenancy.TenantManager; import com.google.firebase.internal.SdkUtils; import com.google.firebase.testing.MultiRequestMockHttpTransport; import com.google.firebase.testing.TestResponseInterceptor; import com.google.firebase.testing.TestUtils; - import java.io.ByteArrayOutputStream; import java.io.IOException; import java.math.BigDecimal; @@ -2683,7 +2681,6 @@ private static FirebaseAuth getRetryDisabledAuth(MockLowLevelHttpResponse respon .build(); final FirebaseApp app = FirebaseApp.initializeApp(new FirebaseOptions.Builder() .setCredentials(credentials) - .setProjectId("test-project-id") .setHttpTransport(transport) .build()); return new FirebaseAuth( @@ -2694,8 +2691,9 @@ private static FirebaseAuth getRetryDisabledAuth(MockLowLevelHttpResponse respon public FirebaseUserManager get() { return FirebaseUserManager .builder() - .setFirebaseApp(app) + .setProjectId("test-project-id") .setHttpRequestFactory(transport.createRequestFactory()) + .setJsonFactory(JSON_FACTORY) .build(); } })); From ef9501894734611cdd1f0f9011d7b945c6abc930 Mon Sep 17 00:00:00 2001 From: hiranya911 Date: Thu, 30 Jul 2020 11:22:56 -0700 Subject: [PATCH 2/2] fix: Removing redundant JsonObjectParser from HttpClient --- .../com/google/firebase/internal/ErrorHandlingHttpClient.java | 4 ---- 1 file changed, 4 deletions(-) diff --git a/src/main/java/com/google/firebase/internal/ErrorHandlingHttpClient.java b/src/main/java/com/google/firebase/internal/ErrorHandlingHttpClient.java index e4495682a..5efdd0ec2 100644 --- a/src/main/java/com/google/firebase/internal/ErrorHandlingHttpClient.java +++ b/src/main/java/com/google/firebase/internal/ErrorHandlingHttpClient.java @@ -24,7 +24,6 @@ import com.google.api.client.http.HttpResponseException; import com.google.api.client.http.HttpResponseInterceptor; import com.google.api.client.json.JsonFactory; -import com.google.api.client.json.JsonObjectParser; import com.google.api.client.json.JsonParser; import com.google.common.io.CharStreams; import com.google.firebase.FirebaseException; @@ -42,7 +41,6 @@ public final class ErrorHandlingHttpClient { private final HttpRequestFactory requestFactory; private final JsonFactory jsonFactory; private final HttpErrorHandler errorHandler; - private final JsonObjectParser jsonParser; private HttpResponseInterceptor interceptor; @@ -53,7 +51,6 @@ public ErrorHandlingHttpClient( this.requestFactory = checkNotNull(requestFactory, "requestFactory must not be null"); this.jsonFactory = checkNotNull(jsonFactory, "jsonFactory must not be null"); this.errorHandler = checkNotNull(errorHandler, "errorHandler must not be null"); - this.jsonParser = new JsonObjectParser(jsonFactory); } public ErrorHandlingHttpClient setInterceptor(HttpResponseInterceptor interceptor) { @@ -138,7 +135,6 @@ public void parse(IncomingHttpResponse response, Object destination) throws T { private HttpRequest createHttpRequest(HttpRequestInfo requestInfo) throws T { try { return requestInfo.newHttpRequest(requestFactory, jsonFactory) - .setParser(jsonParser) .setResponseInterceptor(interceptor); } catch (IOException e) { // Handle request initialization errors (credential loading and other config errors)