From ae587373195d65ed8751b531f0504192c9300e1a Mon Sep 17 00:00:00 2001 From: Chanseok Oh Date: Fri, 5 Aug 2016 18:36:40 -0400 Subject: [PATCH] Use ide login library (#486) * Use the ide-login library * Fail login if it seems already in progress * Convert GoogleLoginService into OGSi service * Use OSGi Declarative Services * Pull jackson-core-asl from Maven Central * Refactor / enhance code design * Make ShellProvider return shells dynamically --- eclipse/ide-target-platform/category.xml | 1 + .../feature.xml | 7 + .../StandardDeployCommandHandler.java | 60 ++++--- .../META-INF/MANIFEST.MF | 1 + .../appengine/login/CredentialHelperTest.java | 27 +-- .../login/GoogleLoginServiceTest.java | 87 ++++++++++ .../login/TransientOAuthDataStoreTest.java | 62 +++++++ .../login/ui/GoogleLoginBrowserTest.java | 54 ------ .../.classpath | 5 +- .../.project | 5 + .../META-INF/MANIFEST.MF | 18 +- .../OSGI-INF/login.xml | 7 + .../build.properties | 3 +- ...e.cloud.tools.ide.login-0.0.0-SNAPSHOT.jar | Bin 0 -> 12642 bytes ...e-api-services-oauth2-v2-rev114-1.22.0.jar | Bin 0 -> 19168 bytes .../lib/google-http-client-jackson-1.22.0.jar | Bin 0 -> 6033 bytes .../google-http-client-jackson2-1.22.0.jar | Bin 6672 -> 0 bytes .../lib/jackson-core-2.1.3.jar | Bin 206797 -> 0 bytes .../appengine/login/CredentialHelper.java | 16 -- .../login/GoogleLoginCommandHandler.java | 39 ++--- .../appengine/login/GoogleLoginService.java | 158 +++++++++++------- .../login/GoogleLoginTemporaryTester.java | 11 +- .../appengine/login/IGoogleLoginService.java | 48 ++++++ .../eclipse/appengine/login/Messages.java | 5 +- .../login/TransientOAuthDataStore.java | 54 ++++++ .../appengine/login/messages.properties | 7 +- .../login/ui/AuthorizationCodeListener.java | 43 ----- .../login/ui/GoogleLoginBrowser.java | 129 -------------- .../appengine/login/ui/LoginServiceUi.java | 88 ++++++++++ .../META-INF/MANIFEST.MF | 7 +- .../tools/eclipse/util/ServiceUtils.java | 68 ++++++++ pom.xml | 6 + 32 files changed, 638 insertions(+), 378 deletions(-) create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginServiceTest.java create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStoreTest.java delete mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowserTest.java create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/OSGI-INF/login.xml create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/lib/com.google.cloud.tools.ide.login-0.0.0-SNAPSHOT.jar create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-api-services-oauth2-v2-rev114-1.22.0.jar create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson-1.22.0.jar delete mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson2-1.22.0.jar delete mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/lib/jackson-core-2.1.3.jar create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/IGoogleLoginService.java create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStore.java delete mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/AuthorizationCodeListener.java delete mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowser.java create mode 100644 plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/LoginServiceUi.java create mode 100644 plugins/com.google.cloud.tools.eclipse.util/src/com/google/cloud/tools/eclipse/util/ServiceUtils.java diff --git a/eclipse/ide-target-platform/category.xml b/eclipse/ide-target-platform/category.xml index c38046f417..fdde41c243 100644 --- a/eclipse/ide-target-platform/category.xml +++ b/eclipse/ide-target-platform/category.xml @@ -26,4 +26,5 @@ + diff --git a/features/com.google.cloud.tools.eclipse.3rdparty.feature/feature.xml b/features/com.google.cloud.tools.eclipse.3rdparty.feature/feature.xml index d38d5784aa..ced44cc7d9 100644 --- a/features/com.google.cloud.tools.eclipse.3rdparty.feature/feature.xml +++ b/features/com.google.cloud.tools.eclipse.3rdparty.feature/feature.xml @@ -60,4 +60,11 @@ version="0.0.0" unpack="false"/> + + diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.deploy/src/com/google/cloud/tools/eclipse/appengine/deploy/standard/StandardDeployCommandHandler.java b/plugins/com.google.cloud.tools.eclipse.appengine.deploy/src/com/google/cloud/tools/eclipse/appengine/deploy/standard/StandardDeployCommandHandler.java index 4948e852b6..133bfc9860 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.deploy/src/com/google/cloud/tools/eclipse/appengine/deploy/standard/StandardDeployCommandHandler.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.deploy/src/com/google/cloud/tools/eclipse/appengine/deploy/standard/StandardDeployCommandHandler.java @@ -1,7 +1,30 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + package com.google.cloud.tools.eclipse.appengine.deploy.standard; -import java.io.IOException; -import java.nio.file.Files; +import com.google.api.client.auth.oauth2.Credential; +import com.google.cloud.tools.eclipse.appengine.deploy.AppEngineProjectDeployer; +import com.google.cloud.tools.eclipse.appengine.deploy.CleanupOldDeploysJob; +import com.google.cloud.tools.eclipse.appengine.deploy.Messages; +import com.google.cloud.tools.eclipse.appengine.login.IGoogleLoginService; +import com.google.cloud.tools.eclipse.ui.util.ProjectFromSelectionHelper; +import com.google.cloud.tools.eclipse.util.FacetedProjectHelper; +import com.google.cloud.tools.eclipse.util.ServiceUtils; +import com.google.cloud.tools.eclipse.util.status.StatusUtil; +import com.google.common.annotations.VisibleForTesting; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; @@ -12,19 +35,9 @@ import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.jobs.IJobChangeEvent; import org.eclipse.core.runtime.jobs.JobChangeAdapter; -import org.eclipse.jface.window.IShellProvider; -import org.eclipse.jface.window.SameShellProvider; -import org.eclipse.ui.handlers.HandlerUtil; -import com.google.api.client.auth.oauth2.Credential; -import com.google.cloud.tools.eclipse.appengine.deploy.AppEngineProjectDeployer; -import com.google.cloud.tools.eclipse.appengine.deploy.CleanupOldDeploysJob; -import com.google.cloud.tools.eclipse.appengine.deploy.Messages; -import com.google.cloud.tools.eclipse.appengine.login.GoogleLoginService; -import com.google.cloud.tools.eclipse.ui.util.ProjectFromSelectionHelper; -import com.google.cloud.tools.eclipse.util.FacetedProjectHelper; -import com.google.cloud.tools.eclipse.util.status.StatusUtil; -import com.google.common.annotations.VisibleForTesting; +import java.io.IOException; +import java.nio.file.Files; /** * Command handler to deploy an App Engine web application project to App Engine Standard. @@ -35,22 +48,22 @@ public class StandardDeployCommandHandler extends AbstractHandler { private ProjectFromSelectionHelper helper; - + public StandardDeployCommandHandler() { this(new FacetedProjectHelper()); } - + @VisibleForTesting StandardDeployCommandHandler(FacetedProjectHelper facetedProjectHelper) { this.helper = new ProjectFromSelectionHelper(facetedProjectHelper); } - + @Override public Object execute(ExecutionEvent event) throws ExecutionException { try { IProject project = helper.getProject(event); if (project != null) { - launchDeployJob(project, new SameShellProvider(HandlerUtil.getActiveShell(event))); + launchDeployJob(project, ServiceUtils.getService(event, IGoogleLoginService.class)); } // return value must be null, reserved for future use return null; @@ -59,10 +72,11 @@ public Object execute(ExecutionEvent event) throws ExecutionException { } } - private void launchDeployJob(IProject project, IShellProvider shellProvider) throws IOException, CoreException { + private void launchDeployJob(IProject project, IGoogleLoginService loginService) + throws IOException, CoreException { IPath workDirectory = createWorkDirectory(); - Credential credential = login(shellProvider); - + Credential credential = login(loginService); + StandardDeployJob deploy = new StandardDeployJob(new ExplodedWarPublisher(), new StandardProjectStaging(), @@ -88,8 +102,8 @@ private IPath createWorkDirectory() throws IOException { return workDirectory; } - private Credential login(IShellProvider shellProvider) throws IOException, CoreException { - Credential credential = new GoogleLoginService().getActiveCredential(shellProvider); + private Credential login(IGoogleLoginService loginService) throws CoreException { + Credential credential = loginService.getActiveCredential(); if (credential == null) { throw new CoreException(StatusUtil.error(getClass(), Messages.getString("login.failed"))); } diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/META-INF/MANIFEST.MF b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/META-INF/MANIFEST.MF index 7efe5e321d..b89b8fd32d 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/META-INF/MANIFEST.MF +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/META-INF/MANIFEST.MF @@ -10,6 +10,7 @@ Fragment-Host: com.google.cloud.tools.eclipse.appengine.login Require-Bundle: org.hamcrest;bundle-version="1.1.0", org.junit;bundle-version="4.12.0" Import-Package: org.mockito;provider=google;version="1.10.19", + org.mockito.invocation;provider=google;version="1.10.19", org.mockito.runners;provider=google;version="1.10.19", org.mockito.stubbing;provider=google;version="1.10.19", org.objenesis;provider=google;version="2.2.0" diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/CredentialHelperTest.java b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/CredentialHelperTest.java index c174831908..81c3ca299a 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/CredentialHelperTest.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/CredentialHelperTest.java @@ -4,23 +4,17 @@ import org.junit.Test; import com.google.api.client.auth.oauth2.Credential; +import com.google.api.client.googleapis.auth.oauth2.GoogleCredential; +import com.google.api.client.http.javanet.NetHttpTransport; +import com.google.api.client.json.jackson.JacksonFactory; import com.google.gson.Gson; public class CredentialHelperTest { - @Test - public void testCreateCredential() { - Credential credential = new CredentialHelper().createCredential("fake_access_token", "fake_refresh_token"); - - Assert.assertEquals(credential.getAccessToken(), "fake_access_token"); - Assert.assertEquals(credential.getRefreshToken(), "fake_refresh_token"); - } - @Test public void testGetJsonCredential() { - CredentialHelper credentialHelper = new CredentialHelper(); - Credential credential = credentialHelper.createCredential("fake_access_token", "fake_refresh_token"); - String jsonCredential = credentialHelper.toJson(credential); + Credential credential = createCredential("fake_access_token", "fake_refresh_token"); + String jsonCredential = new CredentialHelper().toJson(credential); CredentialType credentialType = new Gson().fromJson(jsonCredential, CredentialType.class); Assert.assertEquals(credentialType.client_id, Constants.getOAuthClientId()); @@ -35,4 +29,15 @@ private class CredentialType { private String refresh_token; private String type; }; + + private Credential createCredential(String accessToken, String refreshToken) { + GoogleCredential credential = new GoogleCredential.Builder() + .setTransport(new NetHttpTransport()) + .setJsonFactory(new JacksonFactory()) + .setClientSecrets(Constants.getOAuthClientId(), Constants.getOAuthClientSecret()) + .build(); + credential.setAccessToken(accessToken); + credential.setRefreshToken(refreshToken); + return credential; + } } diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginServiceTest.java b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginServiceTest.java new file mode 100644 index 0000000000..1a6a850095 --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginServiceTest.java @@ -0,0 +1,87 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.appengine.login; + +import static org.mockito.Mockito.never; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.google.cloud.tools.eclipse.appengine.login.ui.LoginServiceUi; +import com.google.cloud.tools.ide.login.LoggerFacade; +import com.google.cloud.tools.ide.login.OAuthData; +import com.google.cloud.tools.ide.login.OAuthDataStore; + +import org.junit.Assert; +import org.junit.Before; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +import java.util.Arrays; +import java.util.Collections; +import java.util.SortedSet; +import java.util.TreeSet; + +@RunWith(MockitoJUnitRunner.class) +public class GoogleLoginServiceTest { + + @Mock private OAuthDataStore dataStore; + @Mock private OAuthData savedOAuthData; + @Mock private LoginServiceUi uiFacade; + @Mock private LoggerFacade loggerFacade; + + private static final SortedSet OAUTH_SCOPES = Collections.unmodifiableSortedSet( + new TreeSet<>(Arrays.asList( + "email", + "https://www.googleapis.com/auth/cloud-platform" + ))); + + @Before + public void setUp() { + when(dataStore.loadOAuthData()).thenReturn(savedOAuthData); + } + + @Test + public void testGoogleLoginService_clearSavedCredentialIfNullRefreshToken() { + when(savedOAuthData.getRefreshToken()).thenReturn(null); + + GoogleLoginService loginService = new GoogleLoginService(dataStore, uiFacade, loggerFacade); + Assert.assertNull(loginService.getCachedActiveCredential()); + } + + @Test + public void testGoogleLoginService_clearSavedCredentialIfScopesChanged() { + // Persisted credential in the data store has an out-dated scopes. + SortedSet newScope = new TreeSet(Arrays.asList("new scope")); + when(savedOAuthData.getStoredScopes()).thenReturn(newScope); + when(savedOAuthData.getRefreshToken()).thenReturn("fake_refresh_token"); + + GoogleLoginService loginService = new GoogleLoginService(dataStore, uiFacade, loggerFacade); + Assert.assertNull(loginService.getCachedActiveCredential()); + } + + @Test + public void testGoogleLoginService_restoreSavedCredential() { + // Persisted credential in the data store is valid. + when(savedOAuthData.getStoredScopes()).thenReturn(OAUTH_SCOPES); + when(savedOAuthData.getRefreshToken()).thenReturn("fake_refresh_token"); + + GoogleLoginService loginService = new GoogleLoginService(dataStore, uiFacade, loggerFacade); + verify(dataStore, never()).clearStoredOAuthData(); + Assert.assertNotNull(loginService.getCachedActiveCredential()); + } +} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStoreTest.java b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStoreTest.java new file mode 100644 index 0000000000..dd73dabe96 --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStoreTest.java @@ -0,0 +1,62 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.appengine.login; + +import static org.mockito.Matchers.anyString; +import static org.mockito.Mockito.mock; +import static org.mockito.Mockito.verify; +import static org.mockito.Mockito.when; + +import com.google.cloud.tools.ide.login.OAuthData; + +import org.eclipse.e4.core.contexts.IEclipseContext; +import org.junit.Assert; +import org.junit.Test; +import org.junit.runner.RunWith; +import org.mockito.ArgumentCaptor; +import org.mockito.Mock; +import org.mockito.runners.MockitoJUnitRunner; + +@RunWith(MockitoJUnitRunner.class) +public class TransientOAuthDataStoreTest { + + @Mock private IEclipseContext eclipseContext; + + @Test + public void testLoadOAuthData_emptyStoreReturnsNonNullOAuthData() { + when(eclipseContext.get(anyString())).thenReturn(null); + + OAuthData oAuthData = new TransientOAuthDataStore(eclipseContext).loadOAuthData(); + Assert.assertNotNull(oAuthData); + Assert.assertEquals(null, oAuthData.getAccessToken()); + Assert.assertEquals(null, oAuthData.getRefreshToken()); + Assert.assertEquals(null, oAuthData.getStoredEmail()); + Assert.assertEquals(0, oAuthData.getAccessTokenExpiryTime()); + } + + @Test + public void testSaveAndLoadOAuthData() { + OAuthData inputData = mock(OAuthData.class); + TransientOAuthDataStore dataStore = new TransientOAuthDataStore(eclipseContext); + dataStore.saveOAuthData(inputData); + dataStore.loadOAuthData(); + + ArgumentCaptor argumentCaptor = ArgumentCaptor.forClass(OAuthData.class); + verify(eclipseContext).set(anyString(), argumentCaptor.capture()); + verify(eclipseContext).get(anyString()); + Assert.assertEquals(inputData, argumentCaptor.getValue()); + } +} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowserTest.java b/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowserTest.java deleted file mode 100644 index a3eb4f54ec..0000000000 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login.test/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowserTest.java +++ /dev/null @@ -1,54 +0,0 @@ -/******************************************************************************* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * All rights reserved. This program and the accompanying materials are made - * available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - *******************************************************************************/ - -package com.google.cloud.tools.eclipse.appengine.login.ui; - -import static org.mockito.Matchers.anyString; -import static org.mockito.Matchers.eq; -import static org.mockito.Mockito.mock; -import static org.mockito.Mockito.never; -import static org.mockito.Mockito.times; -import static org.mockito.Mockito.verify; - -import org.eclipse.swt.browser.TitleEvent; -import org.eclipse.swt.widgets.Widget; -import org.junit.Test; - -public class GoogleLoginBrowserTest { - - @Test - public void testTitleListener_nonCodeTitle() { - GoogleLoginBrowser loginBrowser = mock(GoogleLoginBrowser.class); - TitleEvent titleEvent = new TitleEvent(mock(Widget.class)); - titleEvent.title = "Arbitrary HTML Page Title"; - - new AuthorizationCodeListener(loginBrowser).changed(titleEvent); - - verify(loginBrowser, never()).setAuthorizationCode(anyString()); - verify(loginBrowser, never()).logOutAndClose(); - } - - @Test - public void testTitleListener_authorizationCodeTitle() { - GoogleLoginBrowser loginBrowser = mock(GoogleLoginBrowser.class); - TitleEvent titleEvent = new TitleEvent(mock(Widget.class)); - titleEvent.title = "Success code=fake_authorization_code"; - - new AuthorizationCodeListener(loginBrowser).changed(titleEvent); - - verify(loginBrowser, times(1)).setAuthorizationCode(eq("fake_authorization_code")); - verify(loginBrowser, times(1)).logOutAndClose(); - } -} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/.classpath b/plugins/com.google.cloud.tools.eclipse.appengine.login/.classpath index 23a5555125..efd44c4958 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/.classpath +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/.classpath @@ -4,10 +4,11 @@ + + - + - diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/.project b/plugins/com.google.cloud.tools.eclipse.appengine.login/.project index 78cb12abfb..b0e3923af3 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/.project +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/.project @@ -25,6 +25,11 @@ + + org.eclipse.pde.ds.core.builder + + + org.eclipse.m2e.core.maven2Nature diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/META-INF/MANIFEST.MF b/plugins/com.google.cloud.tools.eclipse.appengine.login/META-INF/MANIFEST.MF index c230b72d97..8e90500fa4 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/META-INF/MANIFEST.MF +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/META-INF/MANIFEST.MF @@ -7,19 +7,21 @@ Bundle-Vendor: Google, Inc. Bundle-Localization: plugin Bundle-RequiredExecutionEnvironment: JavaSE-1.7 Bundle-ActivationPolicy: lazy -Require-Bundle: com.google.cloud.tools.app.lib;bundle-version="0.1.0", - com.google.gson, +Service-Component: OSGI-INF/login.xml +Require-Bundle: com.google.gson, com.google.guava;bundle-version="15.0.0", + jackson-core-asl, org.eclipse.core.runtime, org.eclipse.e4.core.contexts, org.eclipse.ui -Bundle-Classpath: lib/google-api-client-1.22.0.jar, +Bundle-Classpath: lib/com.google.cloud.tools.ide.login-0.0.0-SNAPSHOT.jar, + lib/google-api-client-1.22.0.jar, + lib/google-api-services-oauth2-v2-rev114-1.22.0.jar, lib/google-http-client-1.22.0.jar, - lib/google-http-client-jackson2-1.22.0.jar, + lib/google-http-client-jackson-1.22.0.jar, lib/google-oauth-client-1.22.0.jar, - lib/jackson-core-2.1.3.jar, . Export-Package: com.google.api.client.auth.oauth2;x-friends:="com.google.cloud.tools.eclipse.appengine.deploy", - com.google.cloud.tools.eclipse.appengine.login, - com.google.cloud.tools.eclipse.appengine.login.ui;x-friends:="com.google.cloud.tools.eclipse.appengine.deploy" -Import-Package: com.google.cloud.tools.eclipse.util.status + com.google.cloud.tools.eclipse.appengine.login +Import-Package: com.google.cloud.tools.eclipse.util, + org.osgi.service.component diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/OSGI-INF/login.xml b/plugins/com.google.cloud.tools.eclipse.appengine.login/OSGI-INF/login.xml new file mode 100644 index 0000000000..d1fb019508 --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/OSGI-INF/login.xml @@ -0,0 +1,7 @@ + + + + + + + diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/build.properties b/plugins/com.google.cloud.tools.eclipse.appengine.login/build.properties index 1d48b28b7b..b42b629f3d 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/build.properties +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/build.properties @@ -6,6 +6,7 @@ bin.includes = META-INF/,\ plugin.xml,\ plugin.properties,\ icons/,\ - lib/ + lib/,\ + OSGI-INF/ javacSource=1.7 javacTarget=1.7 diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/com.google.cloud.tools.ide.login-0.0.0-SNAPSHOT.jar b/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/com.google.cloud.tools.ide.login-0.0.0-SNAPSHOT.jar new file mode 100644 index 0000000000000000000000000000000000000000..945103b494efcd4d840501dd1740aa97e4749571 GIT binary patch literal 12642 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 literal 0 HcmV?d00001 diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson-1.22.0.jar b/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson-1.22.0.jar new file mode 100644 index 0000000000000000000000000000000000000000..d599c564023d458f910875739bde39712ffdaf6e GIT binary patch literal 6033 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 CAP$=V literal 0 HcmV?d00001 diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson2-1.22.0.jar b/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/google-http-client-jackson2-1.22.0.jar deleted file mode 100644 index 07fae6461f4aed6e232722e1cc2f8b07ba9cf08b..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6672 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
  • V*jqEXj-|sfB)~BnR4hh zp-9!;3cDk&g`pj+$)_5pvA)ELi-)7CnsK^-_`E6OAm?0|AtPs%DEk1^hwI*JXg1UF z8s2U;?Xc=CgszBcZ}f<{$NRd4St-A_+dX8T0pc-*p))t=NDm>U*WBqV?&S>Xk+xc! z@6jYT6hQUTHu}Ll?s91v{d3x@wSpoDOmagmd1Y4DJa`MTTgiY@s|V)l>4@%~RUDw) zQklKl86RMkn&n{uxwH2~I1f1^D>ltL|B!dd=b*%x7PtRE zcC;A3l<1yFn8B5hBsqRpHQ z=NTi~r?Ca~kGT3+3f^ToH}M6S3a862C^;F#+>SsosLNIQR;&p3@}K<}p0P8XUL)OP zJv(A10xsC5Ll8g4DD%k_iM{Km^z1+pW)BH$YD-wEbwt@-1j-3t+V&V4BFw6xUiTWB zUQ48&bd0aICldSQVJ}osuvES_h83ulurh|F(De;3VRzbAZ89jhp1Si9a>vs7)xl<$8dyU&TLC#l?c=)Jwj3w^S|19zXj$$Qy zSjv^#n3$vjZJU?`FowhFoXoUG2w0KJPms!;Ro))QdI!bLhR>zPN^a0}!8jx@^7Co+ zsEy(Rd?f<*G~r!I#l{rboRTEy3p70M8cC$8fuMtd>4Y0e9RR&>CpZz z4b!~%A_}e~uO5|BZVnzSleUJK!w4FZ2xT4n9A=|^42yp0tngF{rniCptXuwJhJnnP zBij-3>4hIG5LZ(T2bT)(_pJA%9Gn~=z-yT=*FTZp@3LRB-!H*mj=W&5lk*?4Kat=+ zC;k;h{jdBa@tO?F$u|8fQ~jRv*Hra~Lgt&|561d?;TOvKL+JQd;aBGRd+`_Q`a^vC zf5m?=*x!46p|C$Z27c@DjmiGr=nIwoVT6CON&Yfv-=^TpNWR_7e~tdcXumuDn$mvv zycewa4;_EaY=12GuldW5Jd>yX*`0sO^L<Mx)E1DWI5 A3;+NC diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/jackson-core-2.1.3.jar b/plugins/com.google.cloud.tools.eclipse.appengine.login/lib/jackson-core-2.1.3.jar deleted file mode 100644 index f47619f41fb07a5dd1b08960981318f5bdbc5815..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 206797 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%0AGmLlyO5+EE?xtUH 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 N| zU_}EF4Zr=@-+Sc2^VXsr5YB_(fJ`WP_kSit1dD?R#lKiz>;zUy2a*Ehxq>YiQ}*$I zJ$kseZ6&Bq@Pz^NN|N0U zwz~rGFXo=i|H%ADJ>cD(y9>eo;=GXa-#GuYQbgZ&*O&XnbE)WHp1rEg{oWHqjNM(i z?H7ag<9}fQ7WjJ|x8LCr9oSv|>KD9S>A~>7&7OA`!`e->yZFH`qBr&bMzmKcgxxH= z4M(c6M06Gt!^?Y<_HE|F!RG_s+RrStsIVtv_%6 zd;5^K679zQ^*8~6oAf{7?%Lx1qw#xha{tlyRIio)PV#-r`!6Yf+bg(xrk*JO2halBcredential-file-override * feature diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginCommandHandler.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginCommandHandler.java index 77db75894a..1874c9ee0e 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginCommandHandler.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginCommandHandler.java @@ -1,58 +1,47 @@ package com.google.cloud.tools.eclipse.appengine.login; -import java.io.IOException; -import java.util.Map; +import com.google.api.client.auth.oauth2.Credential; +import com.google.cloud.tools.eclipse.util.ServiceUtils; import org.eclipse.core.commands.AbstractHandler; import org.eclipse.core.commands.ExecutionEvent; import org.eclipse.core.commands.ExecutionException; import org.eclipse.jface.dialogs.MessageDialog; -import org.eclipse.jface.window.SameShellProvider; -import org.eclipse.swt.widgets.Shell; -import org.eclipse.ui.PlatformUI; -import org.eclipse.ui.commands.ICommandService; import org.eclipse.ui.commands.IElementUpdater; import org.eclipse.ui.handlers.HandlerUtil; import org.eclipse.ui.menus.UIElement; -import com.google.api.client.auth.oauth2.Credential; +import java.util.Map; public class GoogleLoginCommandHandler extends AbstractHandler implements IElementUpdater { @Override public Object execute(ExecutionEvent event) throws ExecutionException { - Shell shell = HandlerUtil.getActiveShell(event); - GoogleLoginService loginService = new GoogleLoginService(); + IGoogleLoginService loginService = ServiceUtils.getService(event, IGoogleLoginService.class); Credential credential = loginService.getCachedActiveCredential(); if (credential == null) { - try { - credential = loginService.getActiveCredential(new SameShellProvider(shell)); - - boolean success = new GoogleLoginTemporaryTester().testLogin(credential); - MessageDialog.openInformation(shell, - "TESTING AUTH", success ? "SUCCESS" : "FAILURE (to be implemented)"); - } catch (IOException ioe) { - throw new ExecutionException(ioe.getMessage()); - } + credential = loginService.getActiveCredential(); } else { - if (MessageDialog.openConfirm(shell, + if (MessageDialog.openConfirm(HandlerUtil.getActiveShell(event), Messages.LOGOUT_CONFIRM_DIALOG_TITILE, Messages.LOGOUT_CONFIRM_DIALOG_MESSAGE)) { loginService.clearCredential(); } } - ICommandService commandService = - (ICommandService) PlatformUI.getWorkbench().getService(ICommandService.class); - commandService.refreshElements( - "com.google.cloud.tools.eclipse.appengine.login.commands.loginCommand", null); //$NON-NLS-1$ - + if (credential != null) { + boolean success = new GoogleLoginTemporaryTester().testLogin(credential); + MessageDialog.openInformation(HandlerUtil.getActiveShell(event), + "TESTING AUTH", success ? "WORKING CREDENTIAL" : "FAILURE (See console)"); + } return null; } @Override public void updateElement(UIElement element, @SuppressWarnings("rawtypes") Map parameters) { - boolean loggedIn = new GoogleLoginService().getCachedActiveCredential() != null; + IGoogleLoginService loginService = + element.getServiceLocator().getService(IGoogleLoginService.class); + boolean loggedIn = loginService.getCachedActiveCredential() != null; element.setText( loggedIn ? Messages.LOGIN_MENU_LOGGED_IN : Messages.LOGIN_MENU_LOGGED_OUT); diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginService.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginService.java index bf2c483a5b..3afa112f9d 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginService.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginService.java @@ -16,96 +16,136 @@ package com.google.cloud.tools.eclipse.appengine.login; import com.google.api.client.auth.oauth2.Credential; -import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeTokenRequest; -import com.google.api.client.googleapis.auth.oauth2.GoogleTokenResponse; -import com.google.api.client.googleapis.util.Utils; -import com.google.cloud.tools.eclipse.appengine.login.ui.GoogleLoginBrowser; +import com.google.cloud.tools.eclipse.appengine.login.ui.LoginServiceUi; +import com.google.cloud.tools.ide.login.GoogleLoginState; +import com.google.cloud.tools.ide.login.LoggerFacade; +import com.google.cloud.tools.ide.login.OAuthDataStore; +import com.google.common.annotations.VisibleForTesting; import org.eclipse.e4.core.contexts.IEclipseContext; import org.eclipse.jface.window.IShellProvider; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbench; import org.eclipse.ui.PlatformUI; -import java.io.IOException; import java.util.Arrays; import java.util.Collections; -import java.util.List; +import java.util.SortedSet; +import java.util.TreeSet; +import java.util.concurrent.atomic.AtomicBoolean; +import java.util.logging.Level; +import java.util.logging.Logger; /** * Provides service related to login, e.g., account management, getting a credential of a * currently active user, etc. */ -public class GoogleLoginService { - - private static final String STASH_OAUTH_CRED_KEY = "OAUTH_CRED"; +public class GoogleLoginService implements IGoogleLoginService { // For the detailed info about each scope, see // https://github.com/GoogleCloudPlatform/gcloud-eclipse-tools/wiki/Cloud-Tools-for-Eclipse-Technical-Design#oauth-20-scopes-requested - private static final List OAUTH_SCOPES = Collections.unmodifiableList(Arrays.asList( - "https://www.googleapis.com/auth/cloud-platform" //$NON-NLS-1$ - )); + private static final SortedSet OAUTH_SCOPES = Collections.unmodifiableSortedSet( + new TreeSet<>(Arrays.asList( + "email", //$NON-NLS-1$ + "https://www.googleapis.com/auth/cloud-platform" //$NON-NLS-1$ + ))); - private CredentialHelper credentialHelper = new CredentialHelper(); - - /** - * Returns the credential of an active user (among multiple logged-in users). A login screen - * may be presented, e.g., if no user is logged in or login is required due to an expired - * credential. This method returns {@code null} if a user cancels the login process. - * For this reason, if {@code null} is returned, the caller should cancel the current - * operation and display a general message that login is required but was cancelled or failed. - * - * Must be called from a UI context. - * - * @param shellProvider provides a shell for the login screen if login is necessary - * @throws IOException can be thrown by the underlying Login API request (e.g., network - * error from the transport layer while sending/receiving a HTTP request/response.) - */ - public Credential getActiveCredential(IShellProvider shellProvider) throws IOException { - Credential credential = getCachedActiveCredential(); + private GoogleLoginState loginState; + private AtomicBoolean loginInProgress; - if (credential == null) { - credential = logIn(shellProvider); + private LoginServiceUi loginServiceUi; - IEclipseContext eclipseContext = PlatformUI.getWorkbench().getService(IEclipseContext.class); - eclipseContext.set(STASH_OAUTH_CRED_KEY, credential); - } - return credential; + /** + * Called by OSGi Declarative Services Runtime when the {@link GoogleLoginService} is activated + * as an OSGi service. + */ + protected void activate() { + final IWorkbench workbench = PlatformUI.getWorkbench(); + IEclipseContext eclipseContext = workbench.getService(IEclipseContext.class); + IShellProvider shellProvider = new IShellProvider() { + @Override + public Shell getShell() { + return workbench.getDisplay().getActiveShell(); + } + }; + + loginServiceUi = new LoginServiceUi(workbench, shellProvider); + loginState = new GoogleLoginState( + Constants.getOAuthClientId(), Constants.getOAuthClientSecret(), OAUTH_SCOPES, + new TransientOAuthDataStore(eclipseContext), loginServiceUi, new LoginServiceLogger()); + loginInProgress = new AtomicBoolean(false); } /** - * Returns the credential of an active user (among multiple logged-in users). Unlike {@link - * #getActiveCredential}, this version does not involve login process or make API calls. - * Returns {@code null} if no credential has been cached. - * - * Safe to call from non-UI contexts. + * 0-arg constructor is necessary for OSGi Declarative Services. Initialization will be done + * by {@link activate()}. */ - public Credential getCachedActiveCredential() { - IEclipseContext eclipseContext = PlatformUI.getWorkbench().getService(IEclipseContext.class); - return (Credential) eclipseContext.get(STASH_OAUTH_CRED_KEY); + public GoogleLoginService() {} + + @VisibleForTesting + GoogleLoginService( + OAuthDataStore dataStore, LoginServiceUi uiFacade, LoggerFacade loggerFacade) { + loginServiceUi = uiFacade; + loginState = new GoogleLoginState( + Constants.getOAuthClientId(), Constants.getOAuthClientSecret(), OAUTH_SCOPES, + dataStore, uiFacade, loggerFacade); + loginInProgress = new AtomicBoolean(false); } - private Credential logIn(IShellProvider shellProvider) throws IOException { - GoogleLoginBrowser loginBrowser = new GoogleLoginBrowser( - shellProvider.getShell(), Constants.getOAuthClientId(), OAUTH_SCOPES); - if (loginBrowser.open() != GoogleLoginBrowser.OK) { + @Override + public Credential getActiveCredential() { + if (!loginInProgress.compareAndSet(false, true)) { + loginServiceUi.showErrorDialogHelper( + Messages.LOGIN_ERROR_DIALOG_TITLE, Messages.LOGIN_ERROR_IN_PROGRESS); return null; } - GoogleAuthorizationCodeTokenRequest authRequest = new GoogleAuthorizationCodeTokenRequest( - Utils.getDefaultTransport(), Utils.getDefaultJsonFactory(), - Constants.getOAuthClientId(), Constants.getOAuthClientSecret(), - loginBrowser.getAuthorizationCode(), - GoogleLoginBrowser.REDIRECT_URI); - - return createCredential(authRequest.execute()); + // TODO: holding a lock for a long period of time (especially when waiting for UI events) + // should be avoided. Make the login library thread-safe, and don't lock during UI events. + // As a workaround and temporary relief, we use the loginInProgress flag above to fail + // conservatively if login seems to be in progress. + try { + synchronized (loginState) { + if (loginState.logIn(null /* parameter ignored */)) { + return loginState.getCredential(); + } + return null; + } + } + finally { + loginInProgress.set(false); + } } - private Credential createCredential(GoogleTokenResponse tokenResponse) { - return credentialHelper.createCredential(tokenResponse.getAccessToken(), - tokenResponse.getRefreshToken()); + @Override + public Credential getCachedActiveCredential() { + synchronized (loginState) { + if (loginState.isLoggedIn()) { + return loginState.getCredential(); + } + return null; + } } + @Override public void clearCredential() { - IEclipseContext eclipseContext = PlatformUI.getWorkbench().getService(IEclipseContext.class); - eclipseContext.remove(STASH_OAUTH_CRED_KEY); + synchronized (loginState) { + loginState.logOut(false /* Don't prompt for logout. */); + } } + + private static final Logger logger = Logger.getLogger(GoogleLoginService.class.getName()); + + private static class LoginServiceLogger implements LoggerFacade { + + @Override + public void logError(String message, Throwable thrown) { + logger.log(Level.SEVERE, message, thrown); + } + + @Override + public void logWarning(String message) { + logger.log(Level.WARNING, message); + } + }; } diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginTemporaryTester.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginTemporaryTester.java index 79ca746020..a55a55e2b5 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginTemporaryTester.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/GoogleLoginTemporaryTester.java @@ -27,9 +27,14 @@ // FIXME This class is for manual integration login test. Remove it in the final product. public class GoogleLoginTemporaryTester { - public boolean testLogin(Credential credential) throws IOException { - File credentialFile = getCredentialFile(credential); - return credentialFile != null && testCredentialWithGcloud(credentialFile); + public boolean testLogin(Credential credential) { + try { + File credentialFile = getCredentialFile(credential); + return credentialFile != null && testCredentialWithGcloud(credentialFile); + } catch (IOException e) { + e.printStackTrace(); + return false; + } } private File getCredentialFile(Credential credential) throws IOException { diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/IGoogleLoginService.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/IGoogleLoginService.java new file mode 100644 index 0000000000..5cac62dc1c --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/IGoogleLoginService.java @@ -0,0 +1,48 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.appengine.login; + +import com.google.api.client.auth.oauth2.Credential; + +public interface IGoogleLoginService { + + /** + * Returns the credential of an active user (among multiple logged-in users). A login screen + * may be presented, e.g., if no user is logged in or login is required due to an expired + * credential. This method returns {@code null} if a user cancels the login process. + * For this reason, if {@code null} is returned, the caller should cancel the current + * operation and display a general message that login is required but was cancelled or failed. + * + * Must be called from a UI context. + */ + public Credential getActiveCredential(); + + /** + * Returns the credential of an active user (among multiple logged-in users). Unlike {@link + * #getActiveCredential}, this version does not involve login process or make API calls. + * Returns {@code null} if no credential has been cached. + * + * Safe to call from non-UI contexts. + */ + public Credential getCachedActiveCredential(); + + /** + * Clears all credentials. ("logging out" from user perspective.) + * + * Safe to call from non-UI contexts. + */ + public void clearCredential(); +} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/Messages.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/Messages.java index 62ae35bf4f..f8230b62f8 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/Messages.java +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/Messages.java @@ -4,7 +4,10 @@ public class Messages extends NLS { private static final String BUNDLE_NAME = "com.google.cloud.tools.eclipse.appengine.login.messages"; //$NON-NLS-1$ - public static String LOGIN_BROWSER_TITLE; + public static String LOGIN_ERROR_CANNOT_OPEN_BROWSER; + public static String LOGIN_ERROR_DIALOG_MESSAGE; + public static String LOGIN_ERROR_DIALOG_TITLE; + public static String LOGIN_ERROR_IN_PROGRESS; public static String LOGIN_MENU_LOGGED_IN; public static String LOGIN_MENU_LOGGED_OUT; public static String LOGIN_TOOLTIP_LOGGED_IN; diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStore.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStore.java new file mode 100644 index 0000000000..d7a4117f23 --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/TransientOAuthDataStore.java @@ -0,0 +1,54 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.appengine.login; + +import com.google.cloud.tools.ide.login.OAuthData; +import com.google.cloud.tools.ide.login.OAuthDataStore; + +import org.eclipse.e4.core.contexts.IEclipseContext; + +/** + * Provides a transient store for saving and loading {@link OAuthData} (a user credential). + */ +public class TransientOAuthDataStore implements OAuthDataStore { + + private static final String STASH_OAUTH_CRED_KEY = "OAUTH_CRED"; + + private IEclipseContext eclipseContext; + + public TransientOAuthDataStore(IEclipseContext eclipseContext) { + this.eclipseContext = eclipseContext; + } + + @Override + public void clearStoredOAuthData() { + eclipseContext.remove(STASH_OAUTH_CRED_KEY); + } + + @Override + public OAuthData loadOAuthData() { + OAuthData credential = (OAuthData) eclipseContext.get(STASH_OAUTH_CRED_KEY); + if (credential == null) { + return new OAuthData(null, null, null, null, 0); // null credential + } + return credential; + } + + @Override + public void saveOAuthData(OAuthData credential) { + eclipseContext.set(STASH_OAUTH_CRED_KEY, credential); + } +} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/messages.properties b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/messages.properties index e40c8a4c65..c2375b8f17 100644 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/messages.properties +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/messages.properties @@ -1,7 +1,10 @@ -LOGIN_BROWSER_TITLE=Sign in to Google +LOGIN_ERROR_CANNOT_OPEN_BROWSER=Error opening a system browser. Signing in requires an open browser. +LOGIN_ERROR_DIALOG_MESSAGE=An error occurred while trying to sign in. +LOGIN_ERROR_DIALOG_TITLE=Sign in Failed +LOGIN_ERROR_IN_PROGRESS=Login is already in progress. Please try again later. LOGIN_MENU_LOGGED_IN=Sign out from Google LOGIN_MENU_LOGGED_OUT=Sign in to Google... LOGIN_TOOLTIP_LOGGED_IN=Sign out from Google LOGIN_TOOLTIP_LOGGED_OUT=Authorize Eclipse to operate on Google Cloud Platform resources LOGOUT_CONFIRM_DIALOG_MESSAGE=Do you want to sign out from Google? -LOGOUT_CONFIRM_DIALOG_TITILE=Signed out from Google +LOGOUT_CONFIRM_DIALOG_TITILE=Sign out from Google diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/AuthorizationCodeListener.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/AuthorizationCodeListener.java deleted file mode 100644 index 346d096468..0000000000 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/AuthorizationCodeListener.java +++ /dev/null @@ -1,43 +0,0 @@ -/******************************************************************************* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * All rights reserved. This program and the accompanying materials are made - * available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - *******************************************************************************/ - -package com.google.cloud.tools.eclipse.appengine.login.ui; - -import org.eclipse.swt.browser.TitleEvent; -import org.eclipse.swt.browser.TitleListener; - -/** - * Listens for title changes of HTML pages for {@link GoogleLoginBrowser} to capture an authorization - * code. (The authorization code after successful Google login will be given in the HTML title.) - */ -class AuthorizationCodeListener implements TitleListener { - - private static final String SUCCESS_CODE_PREFIX = "Success code="; //$NON-NLS-1$ - - private GoogleLoginBrowser loginBrowser; - - AuthorizationCodeListener(GoogleLoginBrowser loginBrowser) { - this.loginBrowser = loginBrowser; - } - - @Override - public void changed(TitleEvent event) { - if (event.title != null && event.title.startsWith(SUCCESS_CODE_PREFIX)) { - loginBrowser.setAuthorizationCode(event.title.substring(SUCCESS_CODE_PREFIX.length())); - // We don't close the browser now; rather we make the browser log out the user first. - loginBrowser.logOutAndClose(); - } - } -} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowser.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowser.java deleted file mode 100644 index e7daa876ad..0000000000 --- a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/GoogleLoginBrowser.java +++ /dev/null @@ -1,129 +0,0 @@ -/******************************************************************************* - * Copyright 2016 Google Inc. All Rights Reserved. - * - * All rights reserved. This program and the accompanying materials are made - * available under the terms of the Eclipse Public License v1.0 which - * accompanies this distribution, and is available at - * http://www.eclipse.org/legal/epl-v10.html - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT - * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the - * License for the specific language governing permissions and limitations under - * the License. - *******************************************************************************/ - -package com.google.cloud.tools.eclipse.appengine.login.ui; - -import org.eclipse.jface.dialogs.Dialog; -import org.eclipse.jface.dialogs.IDialogConstants; -import org.eclipse.jface.layout.GridDataFactory; -import org.eclipse.swt.SWT; -import org.eclipse.swt.browser.Browser; -import org.eclipse.swt.browser.ProgressAdapter; -import org.eclipse.swt.browser.ProgressEvent; -import org.eclipse.swt.browser.TitleEvent; -import org.eclipse.swt.widgets.Composite; -import org.eclipse.swt.widgets.Control; -import org.eclipse.swt.widgets.Shell; - -import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeRequestUrl; -import com.google.api.client.googleapis.auth.oauth2.GoogleOAuthConstants; -import com.google.cloud.tools.eclipse.appengine.login.Messages; -import com.google.common.annotations.VisibleForTesting; - -import java.net.URL; -import java.util.Collection; - -/** - * A login dialog that is specific for Google login. The dialog embeds a full-featured browser, - * which is used to connect to a Google login URL. Successful browser login will auto-close - * the dialog (after explicitly logging out the user from the browser), and the authorization - * code can be retrieved by {@link #getAuthorizationCode()} thereafter. - * - * Implementation detail worth noting: successful browser login will return an authorization code - * as the title of an HTML page (i.e., the redirect URL after login is basically set to - * {@link GoogleOAuthConstants.OOB_REDIRECT_URI}, which is {@code "urn:ietf:wg:oauth:2.0:oob"}). - */ -public class GoogleLoginBrowser extends Dialog { - - public static final String REDIRECT_URI = GoogleOAuthConstants.OOB_REDIRECT_URI + ":auto"; - - private static final String LOGOUT_URL = "https://www.google.com/accounts/Logout"; //$NON-NLS-1$ - - private Browser browser; - private URL loginUrl; - - private String authorizationCode; - - public GoogleLoginBrowser(Shell parentShell, - String OAuthClientId, Collection OAuthScopes) { - super(parentShell); - loginUrl = new GoogleAuthorizationCodeRequestUrl( - OAuthClientId, REDIRECT_URI, OAuthScopes).toURL(); - } - - /** - * @return authorization code or {@code null} if login is not completed for whatever reason. - */ - public String getAuthorizationCode() { - return authorizationCode; - } - - @Override - protected void configureShell(Shell newShell) { - super.configureShell(newShell); - newShell.setText(Messages.LOGIN_BROWSER_TITLE); - } - - @Override - protected Control createDialogArea(Composite parent) { - Composite composite = (Composite) super.createDialogArea(parent); - - browser = new Browser(composite, SWT.BORDER); - browser.setUrl(loginUrl.toString()); - browser.addProgressListener(new PageLoadingListener()); - browser.addTitleListener(new AuthorizationCodeListener(this)); - GridDataFactory.fillDefaults().grab(true, true).hint(1060, 660).applyTo(browser); - - return composite; - } - - @Override - protected void createButtonsForButtonBar(Composite parent) { - createButton(parent, IDialogConstants.CANCEL_ID, IDialogConstants.CANCEL_LABEL, false); - } - - @Override - protected boolean isResizable() { - return true; - } - - /** - * To close the login browser after verifying that the browser is in the logged-out state. - * Logging out (inside the browser) is triggered via {@link #LOGOUT_URL} right after the - * retrieval of an authorization code from successful browser login. (See {@link - * AuthorizationCodeListener#changed(TitleEvent)}.) (If we don't make the browser log out - * the user, the next time the login browser is launched, the browser may already be in - * the logged-in state.) - */ - private class PageLoadingListener extends ProgressAdapter { - @Override - public void completed(ProgressEvent event) { - if (authorizationCode != null) { - close(); - } - } - } - - @VisibleForTesting - protected void setAuthorizationCode(String authorizationCode) { - this.authorizationCode = authorizationCode; - } - - @VisibleForTesting - protected void logOutAndClose() { - browser.setVisible(false); - browser.setUrl(LOGOUT_URL); - } -} diff --git a/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/LoginServiceUi.java b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/LoginServiceUi.java new file mode 100644 index 0000000000..40f94e5d3f --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.appengine.login/src/com/google/cloud/tools/eclipse/appengine/login/ui/LoginServiceUi.java @@ -0,0 +1,88 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.appengine.login.ui; + +import com.google.api.client.googleapis.auth.oauth2.GoogleAuthorizationCodeRequestUrl; +import com.google.cloud.tools.eclipse.appengine.login.Messages; +import com.google.cloud.tools.ide.login.UiFacade; +import com.google.cloud.tools.ide.login.VerificationCodeHolder; + +import org.eclipse.jface.dialogs.InputDialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.window.IShellProvider; +import org.eclipse.swt.program.Program; +import org.eclipse.ui.commands.ICommandService; +import org.eclipse.ui.services.IServiceLocator; + +public class LoginServiceUi implements UiFacade { + + private IServiceLocator serviceLocator; + private IShellProvider shellProvider; + + public LoginServiceUi(IServiceLocator serviceLocator, IShellProvider shellProvider) { + this.serviceLocator = serviceLocator; + this.shellProvider = shellProvider; + } + + public void showErrorDialogHelper(String title, String message) { + MessageDialog.openError(shellProvider.getShell(), title, message); + } + + @Override + public boolean askYesOrNo(String title, String message) { + throw new RuntimeException("Not allowed to ensure non-UI threads don't prompt."); //$NON-NLS-1$ + } + + @Override + public void showErrorDialog(String title, String message) { + // Ignore "title" and "message", as they are non-localized hard-coded strings in the library. + showErrorDialogHelper(Messages.LOGIN_ERROR_DIALOG_TITLE, Messages.LOGIN_ERROR_DIALOG_MESSAGE); + } + + @Override + public void notifyStatusIndicator() { + // Update and refresh the menu, toolbar button, and tooltip. + shellProvider.getShell().getDisplay().asyncExec(new Runnable() { + @Override + public void run() { + serviceLocator.getService(ICommandService.class).refreshElements( + "com.google.cloud.tools.eclipse.appengine.login.commands.loginCommand", //$NON-NLS-1$ + null); + } + }); + } + + @Override + public VerificationCodeHolder obtainVerificationCodeFromExternalUserInteraction(String title) { + throw new RuntimeException("Not to be called."); //$NON-NLS-1$ + } + + @Override + public String obtainVerificationCodeFromUserInteraction( + String title, GoogleAuthorizationCodeRequestUrl authCodeRequestUrl) { + if (!Program.launch(authCodeRequestUrl.toString())) { + MessageDialog.openError(shellProvider.getShell(), + Messages.LOGIN_ERROR_DIALOG_TITLE, Messages.LOGIN_ERROR_CANNOT_OPEN_BROWSER); + return null; + } + + // TODO(chanseok): remove InputDialog and set up a web server to receive authorization code. + InputDialog dialog = new InputDialog(null, + "Enter Authorization Code", "Enter authorization code from the browser.", null, null); + dialog.open(); + return dialog.getValue(); + } +} diff --git a/plugins/com.google.cloud.tools.eclipse.util/META-INF/MANIFEST.MF b/plugins/com.google.cloud.tools.eclipse.util/META-INF/MANIFEST.MF index 5c53a4594c..a9aaedd157 100644 --- a/plugins/com.google.cloud.tools.eclipse.util/META-INF/MANIFEST.MF +++ b/plugins/com.google.cloud.tools.eclipse.util/META-INF/MANIFEST.MF @@ -10,8 +10,13 @@ Bundle-ActivationPolicy: lazy Export-Package: com.google.cloud.tools.eclipse.util, com.google.cloud.tools.eclipse.util.io, com.google.cloud.tools.eclipse.util.status -Require-Bundle: org.eclipse.core.runtime +Require-Bundle: org.eclipse.core.runtime, + org.eclipse.ui Import-Package: com.google.common.base;version="15.0.0", + org.eclipse.core.commands, org.eclipse.core.resources, + org.eclipse.jface.window, org.eclipse.ui.console, + org.eclipse.ui.handlers, + org.eclipse.ui.services, org.eclipse.wst.common.project.facet.core diff --git a/plugins/com.google.cloud.tools.eclipse.util/src/com/google/cloud/tools/eclipse/util/ServiceUtils.java b/plugins/com.google.cloud.tools.eclipse.util/src/com/google/cloud/tools/eclipse/util/ServiceUtils.java new file mode 100644 index 0000000000..324033dd98 --- /dev/null +++ b/plugins/com.google.cloud.tools.eclipse.util/src/com/google/cloud/tools/eclipse/util/ServiceUtils.java @@ -0,0 +1,68 @@ +/******************************************************************************* + * Copyright 2016 Google Inc. All Rights Reserved. + * + * All rights reserved. This program and the accompanying materials are made + * available under the terms of the Eclipse Public License v1.0 which + * accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT + * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the + * License for the specific language governing permissions and limitations under + * the License. + *******************************************************************************/ + +package com.google.cloud.tools.eclipse.util; + +import org.eclipse.core.commands.ExecutionEvent; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IEditorSite; +import org.eclipse.ui.IWorkbenchPartSite; +import org.eclipse.ui.IWorkbenchSite; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; +import org.eclipse.ui.handlers.HandlerUtil; + +/** + * Utility class for using OSGi services, such as locating OSGi services from a desired context. + */ +public class ServiceUtils { + + /** + * Returns an OSGi service from {@link ExecutionEvent}. It looks up a service in the following + * locations (if exist) in the given order: + * + * {@code HandlerUtil.getActiveSite(event)} + * {@code HandlerUtil.getActiveEditor(event).getEditorSite()} + * {@code HandlerUtil.getActiveEditor(event).getSite()} + * {@code HandlerUtil.getActiveWorkbenchWindow(event)} + * {@code PlatformUI.getWorkbench()} + */ + public static T getService(ExecutionEvent event, Class api) { + IWorkbenchSite activeSite = HandlerUtil.getActiveSite(event); + if (activeSite != null) { + return activeSite.getService(api); + } + + IEditorPart activeEditor = HandlerUtil.getActiveEditor(event); + if (activeEditor != null) { + IEditorSite editorSite = activeEditor.getEditorSite(); + if (editorSite != null) { + return editorSite.getService(api); + } + IWorkbenchPartSite site = activeEditor.getSite(); + if (site != null) { + return site.getService(api); + } + } + + IWorkbenchWindow workbenchWindow = HandlerUtil.getActiveWorkbenchWindow(event); + if (workbenchWindow != null) { + return workbenchWindow.getService(api); + } + + return PlatformUI.getWorkbench().getService(api); + } + +} diff --git a/pom.xml b/pom.xml index 4abc76c4fc..a2451bc197 100644 --- a/pom.xml +++ b/pom.xml @@ -95,6 +95,12 @@ guava 17.0 + + + org.codehaus.jackson + jackson-core-asl + 1.9.13 +