Skip to content

Commit 7e17d56

Browse files
authored
Merge pull request iriusrisk#91 from nicolasiltis/fork-2.0
Update the proxy configuration and capabilities
2 parents f89cd4d + 3a358a5 commit 7e17d56

File tree

6 files changed

+47
-26
lines changed

6 files changed

+47
-26
lines changed

Diff for: build.gradle

+2-2
Original file line numberDiff line numberDiff line change
@@ -115,8 +115,8 @@ dependencies {
115115
testCompile 'org.glassfish.jersey.media:jersey-media-moxy:2.25.1'
116116
testCompile 'junit:junit-dep:4.11'
117117
testCompile 'org.hamcrest:hamcrest-all:1.3'
118-
testCompile ('org.seleniumhq.selenium:selenium-java:3.5.3') { exclude group: 'junit' }
119-
testCompile 'org.seleniumhq.selenium:selenium-api:3.5.3'
118+
testCompile ('org.seleniumhq.selenium:selenium-java:3.12.0') { exclude group: 'junit' }
119+
testCompile 'org.seleniumhq.selenium:selenium-api:3.12.0'
120120
testCompile 'log4j:log4j:1.2.17'
121121
testCompile 'args4j:args4j:2.0.16'
122122
testCompile 'commons-configuration:commons-configuration:1.8'

Diff for: config.xml

+1
Original file line numberDiff line numberDiff line change
@@ -39,6 +39,7 @@
3939
<upstreamProxy>
4040
<host></host>
4141
<port></port>
42+
<noProxyHosts></noProxyHosts><!-- ie: localhost,127.0.0.1,192.168.10.2 -->
4243
</upstreamProxy>
4344

4445
<incorrectPassword>SDFsdfwjx1</incorrectPassword>

Diff for: src/test/java/net/continuumsecurity/Config.java

+9
Original file line numberDiff line numberDiff line change
@@ -36,6 +36,7 @@ public class Config {
3636
protected XMLConfiguration xml;
3737
private String proxyHost;
3838
private int proxyPort = 0;
39+
private String noProxyHosts;
3940
private String proxyApi;
4041
private static Config config;
4142

@@ -130,6 +131,12 @@ private String validateAndGetString(String value) {
130131
if (ret == null) throw new RuntimeException(value+" not defined in config.xml");
131132
return ret;
132133
}
134+
135+
private String[] validateAndGetStringArray(String value) {
136+
String[] ret = getXml().getStringArray(value);
137+
if (ret == null) throw new RuntimeException(value+" not defined in config.xml");
138+
return ret;
139+
}
133140

134141
public String getSSLyzePath() { return validateAndGetString("sslyze.path"); }
135142
public String getSSLyzeOption() { return validateAndGetString("sslyze.option"); }
@@ -193,6 +200,8 @@ public String getReportsDir() {
193200
public String getNessusUsername() { return validateAndGetString("nessus.username");}
194201

195202
public String getNessusPassword() { return validateAndGetString("nessus.password");}
203+
204+
public String getNoProxyHosts() { return String.join(",", validateAndGetStringArray("upstreamProxy.noProxyHosts"));}
196205

197206
public String getUpstreamProxyHost() { return validateAndGetString("upstreamProxy.host"); }
198207

Diff for: src/test/java/net/continuumsecurity/scanner/ZapManager.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ public int startZAP(String zapPath) throws Exception {
4848
params.add("-config"); params.add("api.key="+API_KEY);
4949
Config.getInstance().setProxyApi(API_KEY);
5050
String upstreamProxyHost = Config.getInstance().getUpstreamProxyHost();
51-
if (upstreamProxyHost != null) {
51+
if (upstreamProxyHost.isEmpty()) {
5252
int upstreamProxyPort = Config.getInstance().getUpstreamProxyPort();
5353
log.info("Setting upstream proxy for ZAP to: "+upstreamProxyHost+":"+upstreamProxyPort);
5454
params.add("-config"); params.add("connection.proxyChain.hostName="+upstreamProxyHost);

Diff for: src/test/java/net/continuumsecurity/web/drivers/DriverFactory.java

+33-22
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@
2727
import org.openqa.selenium.firefox.FirefoxDriver;
2828
import org.openqa.selenium.firefox.FirefoxProfile;
2929
import org.openqa.selenium.firefox.internal.ProfilesIni;
30-
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
3130
import org.openqa.selenium.remote.CapabilityType;
3231
import org.openqa.selenium.remote.DesiredCapabilities;
3332

@@ -106,23 +105,11 @@ private WebDriver createDriver(String type) {
106105
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitDriver(null);
107106
throw new RuntimeException("Unsupported WebDriver browser: "+type);
108107
}
109-
110-
private WebDriver createHtmlUnitDriver(DesiredCapabilities capabilities) {
111-
if (capabilities != null) {
112-
capabilities.setBrowserName("htmlunit");
113-
return new HtmlUnitDriver(capabilities);
114-
}
115-
capabilities = new DesiredCapabilities();
116-
capabilities.setBrowserName("htmlunit");
117-
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
118-
return new HtmlUnitDriver(capabilities);
119-
}
120-
121108
private WebDriver createProxyDriver(String type) {
122-
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(createProxyCapabilities());
123-
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(createProxyCapabilities());
124-
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitDriver(createProxyCapabilities());
125-
throw new RuntimeException("Unsupported WebDriver browser: "+type);
109+
if (type.equalsIgnoreCase(CHROME)) return createChromeDriver(createProxyCapabilities(type));
110+
else if (type.equalsIgnoreCase(FIREFOX)) return createFirefoxDriver(createProxyCapabilities(type));
111+
else if (type.equalsIgnoreCase(HTMLUNIT)) return createHtmlUnitDriver(createProxyCapabilities(type));
112+
throw new RuntimeException("Unsupported WebDriver browser: "+type);
126113
}
127114

128115
public WebDriver createChromeDriver(DesiredCapabilities capabilities) {
@@ -137,10 +124,18 @@ public WebDriver createChromeDriver(DesiredCapabilities capabilities) {
137124

138125
}
139126

140-
public WebDriver createFirefoxDriver(DesiredCapabilities capabilities) {
141-
if (capabilities != null) {
142-
return new FirefoxDriver(capabilities);
127+
private WebDriver createHtmlUnitDriver(DesiredCapabilities capabilities) {
128+
if (capabilities != null) {
129+
capabilities.setBrowserName("htmlunit");
130+
return new HtmlUnitDriver(capabilities);
143131
}
132+
capabilities = new DesiredCapabilities();
133+
capabilities.setBrowserName("htmlunit");
134+
capabilities.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
135+
return new HtmlUnitDriver(capabilities);
136+
}
137+
138+
public WebDriver createFirefoxDriver(DesiredCapabilities capabilities) {
144139

145140
ProfilesIni allProfiles = new ProfilesIni();
146141
FirefoxProfile myProfile = allProfiles.getProfile("WebDriver");
@@ -154,15 +149,31 @@ public WebDriver createFirefoxDriver(DesiredCapabilities capabilities) {
154149
myProfile.setAcceptUntrustedCertificates(true);
155150
myProfile.setAssumeUntrustedCertificateIssuer(true);
156151
myProfile.setPreference("webdriver.load.strategy", "unstable");
152+
String noProxyHosts = Config.getInstance().getNoProxyHosts();
153+
if (! noProxyHosts.isEmpty()) {
154+
myProfile.setPreference("network.proxy.no_proxies_on", noProxyHosts);
155+
}
157156
if (capabilities == null) {
158157
capabilities = new DesiredCapabilities();
159158
}
160159
capabilities.setCapability(FirefoxDriver.PROFILE, myProfile);
161160
return new FirefoxDriver(capabilities);
162161
}
163162

164-
public DesiredCapabilities createProxyCapabilities() {
165-
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
163+
public DesiredCapabilities createProxyCapabilities(String type) {
164+
DesiredCapabilities capabilities = null;
165+
switch (type) {
166+
case CHROME:
167+
capabilities = DesiredCapabilities.chrome();
168+
break;
169+
case FIREFOX:
170+
capabilities = DesiredCapabilities.firefox();
171+
break;
172+
case HTMLUNIT:
173+
capabilities = DesiredCapabilities.htmlunit();
174+
default:
175+
break;
176+
}
166177
Proxy proxy = new Proxy();
167178
proxy.setHttpProxy(Config.getInstance().getProxyHost() + ":" + Config.getInstance().getProxyPort());
168179
proxy.setSslProxy(Config.getInstance().getProxyHost() + ":" + Config.getInstance().getProxyPort());

Diff for: zap/db/zapdb.script

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ SET DATABASE TRANSACTION ROLLBACK ON CONFLICT TRUE
2222
SET DATABASE TEXT TABLE DEFAULTS ''
2323
SET FILES WRITE DELAY 20 MILLIS
2424
SET FILES BACKUP INCREMENT TRUE
25-
SET FILES CACHE SIZE 10000
25+
SET FILES CACHE SIZE 200000
2626
SET FILES CACHE ROWS 50000
2727
SET FILES SCALE 64
2828
SET FILES LOB SCALE 32

0 commit comments

Comments
 (0)