Skip to main content
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorcvs2git2009-06-18 03:41:10 +0000
committercvs2git2009-06-18 03:41:10 +0000
commita4a5963a87728efd00b85d0b677d20483877aee6 (patch)
treef0d60f3ae2764ed5a787e18f386c1d40606208dc /org.eclipse.mylyn.tasks.core/src/org/eclipse/mylyn/tasks/core/TaskRepository.java
parent5cdbfcfa9b24c6331b84fa77f277b8b9a45de222 (diff)
downloadorg.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.java256
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)
*/

Back to the top