diff options
author | cvs2git | 2009-06-18 03:41:10 +0000 |
---|---|---|
committer | cvs2git | 2009-06-18 03:41:10 +0000 |
commit | a4a5963a87728efd00b85d0b677d20483877aee6 (patch) | |
tree | f0d60f3ae2764ed5a787e18f386c1d40606208dc /org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java | |
parent | 5cdbfcfa9b24c6331b84fa77f277b8b9a45de222 (diff) | |
download | org.eclipse.mylyn.tasks-a4a5963a87728efd00b85d0b677d20483877aee6.tar.gz org.eclipse.mylyn.tasks-a4a5963a87728efd00b85d0b677d20483877aee6.tar.xz org.eclipse.mylyn.tasks-a4a5963a87728efd00b85d0b677d20483877aee6.zip |
This commit was manufactured by cvs2svn to create tag 'R_3_2_0_e_3_3'.R_3_2_0_e_3_3
Sprout from master 2009-06-18 03:41:09 UTC spingel 'NEW - bug 280709: fix BugzillaRepositoryConnectorTest.testMissingHits()'
Cherrypick from master 2009-05-21 05:09:59 UTC relves 'NEW - bug 237042: [e3.4] use secure storage to save passwords':
org.eclipse.mylyn.tasks.core/META-INF/MANIFEST.MF
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java
Cherrypick from e_3_3_m_3_x 2009-06-17 00:15:35 UTC spingel 'NEW - bug 248778: [releng] backport changes to Eclipse 3.3':
org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.core.prefs
org.eclipse.mylyn-feature/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.mylyn-feature/about.html
org.eclipse.mylyn-feature/build.properties
org.eclipse.mylyn-feature/feature.properties
org.eclipse.mylyn-feature/feature.xml
org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.core.prefs
org.eclipse.mylyn.bugzilla-feature/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.mylyn.bugzilla-feature/about.html
org.eclipse.mylyn.bugzilla-feature/build.properties
org.eclipse.mylyn.bugzilla-feature/feature.properties
org.eclipse.mylyn.bugzilla-feature/feature.xml
org.eclipse.mylyn.tasks.bugs/.classpath
org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.core.prefs
org.eclipse.mylyn.tasks.bugs/.settings/org.eclipse.jdt.ui.prefs
org.eclipse.mylyn.tasks.bugs/META-INF/MANIFEST.MF
org.eclipse.mylyn.tasks.bugs/about.html
org.eclipse.mylyn.tasks.bugs/build.properties
org.eclipse.mylyn.tasks.bugs/icons/etool16/task-bug-new.gif
org.eclipse.mylyn.tasks.bugs/plugin.properties
org.eclipse.mylyn.tasks.bugs/plugin.xml
org.eclipse.mylyn.tasks.bugs/schema/pluginRepositoryMappings.exsd
org.eclipse.mylyn.tasks.bugs/schema/support.exsd
org.eclipse.mylyn.tasks.bugs/schema/taskContributors.exsd
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractSupportHandler.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/AbstractTaskContributor.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProduct.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/IProvider.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportRequest.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ISupportResponse.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/provisional/tasks/bugs/ITaskContribution.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AbstractSupportElement.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/AttributeTaskMapper.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/DefaultSupportHandler.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/IRepositoryConstants.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/KeyValueMapping.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/Messages.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/ProductRepositoryMapping.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportCategory.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportHandlerManager.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProduct.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProvider.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportProviderManager.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/SupportRequest.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TaskErrorReporter.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/TasksBugsPlugin.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/Messages.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromErrorAction.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/ReportBugAction.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/messages.properties
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/messages.properties
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ErrorLogStatus.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/Messages.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ProductStatus.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportBugOrEnhancementWizard.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorPage.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/ReportErrorWizard.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/SelectSupportElementPage.java
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/wizards/messages.properties
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/ITasksCoreConstants.java
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/RepositoryQuery.java
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskAttachmentJob.java
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SubmitTaskJob.java
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/internal/tasks/core/sync/SynchronizeRepositoriesJob.java
org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/data/TaskMapper.java
Delete:
org.eclipse.mylyn.tasks.bugs/icons/etool16/task-new.gif
org.eclipse.mylyn.tasks.bugs/src/org/eclipse/mylyn/internal/tasks/bugs/actions/NewTaskFromMarkerHandler.java
Diffstat (limited to 'org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java')
-rw-r--r-- | org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java | 256 |
1 files changed, 83 insertions, 173 deletions
diff --git a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java index a9da8d30c..e9dc273ac 100644 --- a/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java +++ b/org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java @@ -30,10 +30,6 @@ import org.eclipse.core.runtime.IStatus; import org.eclipse.core.runtime.Platform; import org.eclipse.core.runtime.PlatformObject; import org.eclipse.core.runtime.Status; -import org.eclipse.equinox.security.storage.EncodingUtils; -import org.eclipse.equinox.security.storage.ISecurePreferences; -import org.eclipse.equinox.security.storage.SecurePreferencesFactory; -import org.eclipse.equinox.security.storage.StorageException; import org.eclipse.mylyn.commons.core.StatusHandler; import org.eclipse.mylyn.commons.net.AuthenticationCredentials; import org.eclipse.mylyn.commons.net.AuthenticationType; @@ -238,87 +234,28 @@ public final class TaskRepository extends PlatformObject { this.setProperty(AUTH_PROXY + SAVE_PASSWORD, String.valueOf(true)); } - private ISecurePreferences getSecurePreferences() { - ISecurePreferences securePreferences = SecurePreferencesFactory.getDefault() - .node(ITasksCoreConstants.ID_PLUGIN); - securePreferences = securePreferences.node(EncodingUtils.encodeSlashes(getRepositoryUrl())); - return securePreferences; - } - - private void addAuthInfo(String username, String password, String userProperty, String passwordProperty) { + // TODO e3.4 move to new api + private void addAuthInfo(Map<String, String> map) { synchronized (LOCK) { - if (Platform.isRunning()) { - if (useSecureStorage()) { + try { + if (Platform.isRunning()) { + // write the map to the keyring try { - ISecurePreferences securePreferences = getSecurePreferences(); - if (userProperty.equals(getKeyPrefix(AuthenticationType.REPOSITORY) + USERNAME)) { - this.setProperty(userProperty, username); - } else { - securePreferences.put(userProperty, username, false); - } - securePreferences.put(passwordProperty, password, true); - } catch (StorageException e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not store authorization credentials", e)); //$NON-NLS-1$ + Platform.addAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME, map); + } catch (MalformedURLException ex) { + Platform.addAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME, map); } } else { - Map<String, String> map = getAuthInfo(); - if (map == null) { - map = new HashMap<String, String>(); - } - try { - try { - map.put(userProperty, username); - map.put(passwordProperty, password); - Platform.addAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME, map); - } catch (MalformedURLException ex) { - Platform.addAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME, map); - } - } catch (CoreException e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not set authorization credentials", e)); //$NON-NLS-1$ - } - } - } else { - Map<String, String> headlessCreds = credentials.get(getRepositoryUrl()); - if (headlessCreds == null) { - headlessCreds = new HashMap<String, String>(); - credentials.put(getRepositoryUrl(), headlessCreds); - } - headlessCreds.put(userProperty, username); - headlessCreds.put(passwordProperty, password); - } - } - } - - @SuppressWarnings( { "unchecked" }) - private Map<String, String> getAuthInfo() { - synchronized (LOCK) { - if (Platform.isRunning()) { - try { - return Platform.getAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME); - } catch (MalformedURLException ex) { - return Platform.getAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME); - } catch (Exception e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not retrieve authorization credentials", e)); //$NON-NLS-1$ + Map<String, String> headlessCreds = getAuthInfo(); + headlessCreds.putAll(map); } - } else { - Map<String, String> headlessCreds = credentials.get(getRepositoryUrl()); - if (headlessCreds == null) { - headlessCreds = new HashMap<String, String>(); - credentials.put(getRepositoryUrl(), headlessCreds); - } - return headlessCreds; + } catch (CoreException e) { + StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + "Could not set authorization credentials", e)); //$NON-NLS-1$ } - return null; } } - /** - * @deprecated use {@code flushAuthenticationCredentials()} - */ - @Deprecated public void clearCredentials() { } @@ -335,6 +272,7 @@ public final class TaskRepository extends PlatformObject { return false; } + // TODO e3.4 move to new api public void flushAuthenticationCredentials() { // legacy support for versions prior to 2.2 that did not set the enable flag setProperty(getKeyPrefix(AuthenticationType.HTTP) + ENABLED, null); @@ -343,91 +281,40 @@ public final class TaskRepository extends PlatformObject { synchronized (LOCK) { isCachedUserName = false; + transientProperties.clear(); - if (Platform.isRunning()) { - if (useSecureStorage()) { - if (Platform.isRunning()) { - ISecurePreferences securePreferences = getSecurePreferences(); - securePreferences.removeNode(); - this.setProperty(AuthenticationType.REPOSITORY + USERNAME, ""); //$NON-NLS-1$ - } else { - Map<String, String> headlessCreds = credentials.get(getRepositoryUrl()); - if (headlessCreds != null) { - headlessCreds.clear(); - } - } - } else { + try { + if (Platform.isRunning()) { try { - try { - Platform.flushAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME); - } catch (MalformedURLException ex) { - Platform.flushAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME); - } - } catch (CoreException e) { - // FIXME propagate exception? - StatusHandler.fail(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not flush authorization credentials", e)); //$NON-NLS-1$ + Platform.flushAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME); + } catch (MalformedURLException ex) { + Platform.flushAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME); } - } - } else { - Map<String, String> headlessCreds = credentials.get(getRepositoryUrl()); - if (headlessCreds != null) { + } else { + Map<String, String> headlessCreds = getAuthInfo(); headlessCreds.clear(); } + } catch (CoreException e) { + // FIXME propagate exception? + StatusHandler.fail(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + "Could not flush authorization credentials", e)); //$NON-NLS-1$ } } } - private boolean useSecureStorage() { - String useSecure = getProperty(ITasksCoreConstants.PROPERTY_USE_SECURE_STORAGE); - if (useSecure != null) { - return "true".equals(useSecure); //$NON-NLS-1$ - } - return false; - } - - @SuppressWarnings("unchecked") - private String getAuthInfo(String property) { + // TODO e3.4 move to new api + @SuppressWarnings( { "unchecked" }) + private Map<String, String> getAuthInfo() { synchronized (LOCK) { if (Platform.isRunning()) { - if (useSecureStorage()) { - String propertyValue = null; - if (property.equals(getKeyPrefix(AuthenticationType.REPOSITORY) + USERNAME)) { - propertyValue = this.getProperty(property); - } else { - try { - ISecurePreferences securePreferences = getSecurePreferences(); - propertyValue = securePreferences.get(property, null); - } catch (StorageException e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not retrieve authorization credentials", e)); //$NON-NLS-1$ - } - if (propertyValue == null) { - propertyValue = getFromLegacyKeystore(property); - } - } - return propertyValue; - } else { - try { - Map<String, String> map = Platform.getAuthorizationInfo(new URL(getRepositoryUrl()), - AUTH_REALM, AUTH_SCHEME); - if (map != null) { - String propertyValue = map.get(property); - return propertyValue; - } - } catch (MalformedURLException ex) { - Map<String, String> map = Platform.getAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), - AUTH_SCHEME); - if (map != null) { - String propertyValue = map.get(property); - return propertyValue; - } - } catch (Exception e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not retrieve authorization credentials", e)); //$NON-NLS-1$ - } - return null; + try { + return Platform.getAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, AUTH_SCHEME); + } catch (MalformedURLException ex) { + return Platform.getAuthorizationInfo(DEFAULT_URL, getRepositoryUrl(), AUTH_SCHEME); + } catch (Exception e) { + StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, + "Could not retrieve authorization credentials", e)); //$NON-NLS-1$ } } else { Map<String, String> headlessCreds = credentials.get(getRepositoryUrl()); @@ -435,31 +322,15 @@ public final class TaskRepository extends PlatformObject { headlessCreds = new HashMap<String, String>(); credentials.put(getRepositoryUrl(), headlessCreds); } - return headlessCreds.get(property); + return headlessCreds; } + return null; } } - @SuppressWarnings("unchecked") - private String getFromLegacyKeystore(String property) { - String propertyValue = null; - try { - Map<String, String> map = Platform.getAuthorizationInfo(new URL(getRepositoryUrl()), AUTH_REALM, - AUTH_SCHEME); - if (map != null) { - propertyValue = map.get(property); - if (propertyValue != null) { - ISecurePreferences securePreferences = getSecurePreferences(); - securePreferences.put(property, propertyValue, property.endsWith(PASSWORD)); - map.remove(property); - } - } - } catch (Exception e) { - StatusHandler.log(new Status(IStatus.ERROR, ITasksCoreConstants.ID_PLUGIN, - "Could not retrieve authorization credentials", e)); //$NON-NLS-1$ - } - return propertyValue; - + private String getAuthInfo(String property) { + Map<String, String> map = getAuthInfo(); + return map == null ? null : map.get(property); } public String getCharacterEncoding() { @@ -577,6 +448,29 @@ public final class TaskRepository extends PlatformObject { return this.properties.get(name); } +// /** +// * @deprecated use {@link TaskRepositoryLocation#getProxyForHost(String, String)} instead +// */ +// @Deprecated +// public Proxy getProxy() { +// Proxy proxy = Proxy.NO_PROXY; +// if (isDefaultProxyEnabled()) { +// proxy = WebClientUtil.getPlatformProxy(getRepositoryUrl()); +// } else { +// +// String proxyHost = getProperty(PROXY_HOSTNAME); +// String proxyPort = getProperty(PROXY_PORT); +// String proxyUsername = ""; +// String proxyPassword = ""; +// if (proxyHost != null && proxyHost.length() > 0) { +// proxyUsername = getProxyUsername(); +// proxyPassword = getProxyPassword(); +// } +// proxy = WebClientUtil.getProxy(proxyHost, proxyPort, proxyUsername, proxyPassword); +// } +// return proxy; +// } + /** * @deprecated use {@link #getCredentials(AuthenticationType)} instead */ @@ -755,14 +649,15 @@ public final class TaskRepository extends PlatformObject { if (credentials == null) { setProperty(key + ENABLED, String.valueOf(false)); transientProperties.remove(key + PASSWORD); - addAuthInfo("", "", key + USERNAME, key + PASSWORD); //$NON-NLS-1$ //$NON-NLS-2$ + setCredentialsInternal("", "", key + USERNAME, key + PASSWORD); //$NON-NLS-1$ //$NON-NLS-2$ } else { setProperty(key + ENABLED, String.valueOf(true)); if (savePassword) { - addAuthInfo(credentials.getUserName(), credentials.getPassword(), key + USERNAME, key + PASSWORD); + setCredentialsInternal(credentials.getUserName(), credentials.getPassword(), key + USERNAME, key + + PASSWORD); transientProperties.remove(key + PASSWORD); } else { - addAuthInfo(credentials.getUserName(), "", key + USERNAME, key + PASSWORD); //$NON-NLS-1$ + setCredentialsInternal(credentials.getUserName(), "", key + USERNAME, key + PASSWORD); //$NON-NLS-1$ transientProperties.put(key + PASSWORD, credentials.getPassword()); } } @@ -790,6 +685,21 @@ public final class TaskRepository extends PlatformObject { } + private void setCredentialsInternal(String username, String password, String userProperty, String passwordProperty) { + Map<String, String> map = getAuthInfo(); + if (map == null) { + map = new HashMap<String, String>(); + } + + if (username != null) { + map.put(userProperty, username); + } + if (password != null) { + map.put(passwordProperty, password); + } + addAuthInfo(map); + } + /** * @deprecated use esetCredentials(AuthenticationType, AuthenticationCredentials, boolean) */ |