use of org.eclipse.ecf.core.util.Proxy in project ecf by eclipse.
the class HttpClientProxyCredentialProvider method getCredentials.
public Credentials getCredentials(AuthScope authscope) {
// $NON-NLS-1$
Trace.entering(Activator.PLUGIN_ID, DebugOptions.METHODS_ENTERING, HttpClientProxyCredentialProvider.class, "getCredentials " + authscope);
// First check to see whether given authscope matches any authscope
// already cached.
Credentials result = matchCredentials(this.cachedCredentials, authscope);
// If we have a match, return credentials
if (result != null)
return result;
// If we don't have a match, first get ECF proxy, if any
Proxy proxy = getECFProxy();
if (proxy == null)
return null;
// Make sure that authscope and proxy host and port match
if (!matchAuthScopeAndProxy(authscope, proxy))
return null;
// Then match scheme, and get credentials from proxy (if it's scheme we know about)
Credentials credentials = null;
if ("ntlm".equalsIgnoreCase(authscope.getScheme())) {
// $NON-NLS-1$
credentials = getNTLMCredentials(proxy);
} else if (// $NON-NLS-1$
"basic".equalsIgnoreCase(authscope.getScheme()) || "digest".equalsIgnoreCase(authscope.getScheme())) {
// $NON-NLS-1$
final String proxyUsername = proxy.getUsername();
final String proxyPassword = proxy.getPassword();
// If credentials present for proxy then we're done
if (proxyUsername != null) {
credentials = new UsernamePasswordCredentials(proxyUsername, proxyPassword);
}
} else if ("negotiate".equalsIgnoreCase(authscope.getScheme())) {
// $NON-NLS-1$
// $NON-NLS-1$
Trace.trace(Activator.PLUGIN_ID, "SPNEGO is not supported, if you can contribute support, please do so.");
} else {
// $NON-NLS-1$
Trace.trace(Activator.PLUGIN_ID, "Unrecognized authentication scheme.");
}
// Put found credentials in cache for next time
if (credentials != null)
cachedCredentials.put(authscope, credentials);
return credentials;
}
use of org.eclipse.ecf.core.util.Proxy in project ecf by eclipse.
the class ScpUtil method setupProxy.
/**
*/
void setupProxy() {
com.jcraft.jsch.Proxy jProxy = null;
final Proxy proxy = handler.getProxy();
if (proxy != null) {
final String hostname = proxy.getAddress().getHostName();
final int port = proxy.getAddress().getPort();
if (proxy.getType().equals(Proxy.Type.HTTP)) {
if (port == -1)
jProxy = new ProxyHTTP(hostname);
else
jProxy = new ProxyHTTP(hostname, port);
} else if (proxy.getType().equals(Proxy.Type.SOCKS)) {
if (port == -1)
jProxy = new ProxySOCKS5(hostname);
else
jProxy = new ProxySOCKS5(hostname, port);
}
if (jProxy != null)
session.setProxy(jProxy);
}
}
use of org.eclipse.ecf.core.util.Proxy in project ecf by eclipse.
the class ProxySetupHelper method getProxy.
public static Proxy getProxy(String url) {
Proxy proxy = null;
try {
IProxyService proxyService = Activator.getDefault().getProxyService();
// Only do this if platform service exists
if (proxyService != null && proxyService.isProxiesEnabled()) {
// Setup via proxyService entry
URI uri = new URI(url);
final IProxyData[] proxies = proxyService.select(uri);
IProxyData selectedProxy = selectProxyFromProxies(uri.getScheme(), proxies);
if (selectedProxy != null) {
proxy = new Proxy(((selectedProxy.getType().equalsIgnoreCase(IProxyData.SOCKS_PROXY_TYPE)) ? Proxy.Type.SOCKS : Proxy.Type.HTTP), new ProxyAddress(selectedProxy.getHost(), selectedProxy.getPort()), selectedProxy.getUserId(), selectedProxy.getPassword());
}
}
} catch (Exception e) {
// If we don't even have the classes for this (i.e. the org.eclipse.core.net plugin not available)
// then we simply log and ignore
Activator.logNoProxyWarning(e);
} catch (NoClassDefFoundError e) {
Activator.logNoProxyWarning(e);
}
return proxy;
}
use of org.eclipse.ecf.core.util.Proxy in project ecf by eclipse.
the class HttpClientBrowseFileTransferFactory method newInstance.
public IRemoteFileSystemBrowser newInstance() {
return new IRemoteFileSystemBrowser() {
private Proxy proxy;
private IConnectContext connectContext;
public Namespace getBrowseNamespace() {
return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL);
}
public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException {
Assert.isNotNull(directoryOrFileId);
Assert.isNotNull(listener);
URL url;
try {
url = directoryOrFileId.getURL();
} catch (final MalformedURLException e) {
// $NON-NLS-1$
throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", directoryOrFileId));
}
HttpClientFileSystemBrowser browser = new HttpClientFileSystemBrowser(new SNIAwareHttpClient(), directoryOrFileId, listener, url, connectContext, proxy);
return browser.sendBrowseRequest();
}
public void setConnectContextForAuthentication(IConnectContext connectContext) {
this.connectContext = connectContext;
}
public void setProxy(Proxy proxy) {
this.proxy = proxy;
}
public Object getAdapter(Class adapter) {
return null;
}
};
}
use of org.eclipse.ecf.core.util.Proxy in project ecf by eclipse.
the class ScpBrowseFileTransferFactory method newInstance.
public IRemoteFileSystemBrowser newInstance() {
return new IRemoteFileSystemBrowser() {
private Proxy proxy;
private IConnectContext connectContext;
public Namespace getBrowseNamespace() {
return IDFactory.getDefault().getNamespaceByName(FileTransferNamespace.PROTOCOL);
}
public IRemoteFileSystemRequest sendBrowseRequest(IFileID directoryOrFileId, IRemoteFileSystemListener listener) throws RemoteFileSystemException {
Assert.isNotNull(directoryOrFileId);
Assert.isNotNull(listener);
URL url;
try {
url = directoryOrFileId.getURL();
} catch (final MalformedURLException e) {
throw new RemoteFileSystemException(NLS.bind("Exception creating URL for {0}", // $NON-NLS-1$
directoryOrFileId));
}
ScpFileSystemBrowser browser = new ScpFileSystemBrowser(directoryOrFileId, listener, url, connectContext, proxy);
return browser.sendBrowseRequest();
}
public void setConnectContextForAuthentication(IConnectContext connectContext) {
this.connectContext = connectContext;
}
public void setProxy(Proxy proxy) {
this.proxy = proxy;
}
public Object getAdapter(Class adapter) {
return null;
}
};
}
Aggregations