SetProxypublic class SetProxy extends org.apache.tools.ant.Task Sets Java's web proxy properties, so that tasks and code run in
the same JVM can have through-the-firewall access to remote web sites,
and remote ftp sites.
You can nominate an http and ftp proxy, or a socks server, reset the server
settings, or do nothing at all.
Examples
<setproxy/>
do nothing
<setproxy proxyhost="firewall"/>
set the proxy to firewall:80
<setproxy proxyhost="firewall" proxyport="81"/>
set the proxy to firewall:81
<setproxy proxyhost=""/>
stop using the http proxy; don't change the socks settings
<setproxy socksproxyhost="socksy"/>
use socks via socksy:1080
<setproxy socksproxyhost=""/>
stop using the socks server.
You can set a username and password for http with the proxyHost
and proxyPassword attributes. On Java1.4 and above these can also be
used against SOCKS5 servers.
|
Fields Summary |
---|
protected String | proxyHostproxy details | protected int | proxyPortname of proxy port | private String | socksProxyHostsocks host. | private int | socksProxyPortSocks proxy port. Default is 1080. | private String | nonProxyHostslist of non proxy hosts | private String | proxyUseruser for http only | private String | proxyPasswordpassword for http only |
Methods Summary |
---|
public void | applyWebProxySettings()if the proxy port and host settings are not null, then the settings
get applied these settings last beyond the life of the object and
apply to all network connections
Relevant docs: buglist #4183340
boolean settingsChanged = false;
boolean enablingProxy = false;
Properties sysprops = System.getProperties();
if (proxyHost != null) {
settingsChanged = true;
if (proxyHost.length() != 0) {
traceSettingInfo();
enablingProxy = true;
sysprops.put(ProxySetup.HTTP_PROXY_HOST, proxyHost);
String portString = Integer.toString(proxyPort);
sysprops.put(ProxySetup.HTTP_PROXY_PORT, portString);
sysprops.put(ProxySetup.HTTPS_PROXY_HOST, proxyHost);
sysprops.put(ProxySetup.HTTPS_PROXY_PORT, portString);
sysprops.put(ProxySetup.FTP_PROXY_HOST, proxyHost);
sysprops.put(ProxySetup.FTP_PROXY_PORT, portString);
if (nonProxyHosts != null) {
sysprops.put(ProxySetup.HTTP_NON_PROXY_HOSTS, nonProxyHosts);
sysprops.put(ProxySetup.HTTPS_NON_PROXY_HOSTS, nonProxyHosts);
sysprops.put(ProxySetup.FTP_NON_PROXY_HOSTS, nonProxyHosts);
}
if (proxyUser != null) {
sysprops.put(ProxySetup.HTTP_PROXY_USERNAME, proxyUser);
sysprops.put(ProxySetup.HTTP_PROXY_PASSWORD, proxyPassword);
}
} else {
log("resetting http proxy", Project.MSG_VERBOSE);
sysprops.remove(ProxySetup.HTTP_PROXY_HOST);
sysprops.remove(ProxySetup.HTTP_PROXY_PORT);
sysprops.remove(ProxySetup.HTTP_PROXY_USERNAME);
sysprops.remove(ProxySetup.HTTP_PROXY_PASSWORD);
sysprops.remove(ProxySetup.HTTPS_PROXY_HOST);
sysprops.remove(ProxySetup.HTTPS_PROXY_PORT);
sysprops.remove(ProxySetup.FTP_PROXY_HOST);
sysprops.remove(ProxySetup.FTP_PROXY_PORT);
}
}
//socks
if (socksProxyHost != null) {
settingsChanged = true;
if (socksProxyHost.length() != 0) {
enablingProxy = true;
sysprops.put(ProxySetup.SOCKS_PROXY_HOST, socksProxyHost);
sysprops.put(ProxySetup.SOCKS_PROXY_PORT, Integer.toString(socksProxyPort));
if (proxyUser != null) {
//this may be a java1.4 thingy only
sysprops.put(ProxySetup.SOCKS_PROXY_USERNAME, proxyUser);
sysprops.put(ProxySetup.SOCKS_PROXY_PASSWORD, proxyPassword);
}
} else {
log("resetting socks proxy", Project.MSG_VERBOSE);
sysprops.remove(ProxySetup.SOCKS_PROXY_HOST);
sysprops.remove(ProxySetup.SOCKS_PROXY_PORT);
sysprops.remove(ProxySetup.SOCKS_PROXY_USERNAME);
sysprops.remove(ProxySetup.SOCKS_PROXY_PASSWORD);
}
}
if (proxyUser != null) {
if (enablingProxy) {
Authenticator.setDefault(new ProxyAuth(proxyUser,
proxyPassword));
} else if (settingsChanged) {
Authenticator.setDefault(new ProxyAuth("", ""));
}
}
| public void | execute()Does the work.
applyWebProxySettings();
| public void | setNonProxyHosts(java.lang.String nonProxyHosts)A list of hosts to bypass the proxy on. These should be separated
with the vertical bar character '|'. Only in Java 1.4 does ftp use
this list.
e.g. fozbot.corp.sun.com|*.eng.sun.com
this.nonProxyHosts = nonProxyHosts;
| public void | setProxyHost(java.lang.String hostname)the HTTP/ftp proxy host. Set this to "" for the http proxy
option to be disabled
proxyHost = hostname;
| public void | setProxyPassword(java.lang.String proxyPassword)Set the password for the proxy. Used only if the proxyUser is set.
this.proxyPassword = proxyPassword;
| public void | setProxyPort(int port)the HTTP/ftp proxy port number; default is 80
proxyPort = port;
| public void | setProxyUser(java.lang.String proxyUser)set the proxy user. Probably requires a password to accompany this
setting. Default=""
this.proxyUser = proxyUser;
| public void | setSocksProxyHost(java.lang.String host)The name of a Socks server. Set to "" to turn socks
proxying off.
this.socksProxyHost = host;
| public void | setSocksProxyPort(int port)Set the ProxyPort for socks connections. The default value is 1080
this.socksProxyPort = port;
| private void | traceSettingInfo()list out what is going on
log("Setting proxy to "
+ (proxyHost != null ? proxyHost : "''")
+ ":" + proxyPort,
Project.MSG_VERBOSE);
|
|