blob: a2d427bc61df8134ce5b9b0bddd64f6d273c5285 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
|
package org.onap.sdc.ci.tests.execute.setup;
import java.net.InetSocketAddress;
import java.net.Proxy;
import java.net.ProxySelector;
import java.net.SocketAddress;
import java.net.URI;
import java.util.HashMap;
import java.util.List;
import java.util.stream.Collectors;
import org.slf4j.LoggerFactory;
import com.aventstack.extentreports.ExtentTest;
import com.github.markusbernhardt.proxy.ProxySearch;
import com.github.markusbernhardt.proxy.ProxySearch.Strategy;
import com.github.markusbernhardt.proxy.util.PlatformUtil;
import com.github.markusbernhardt.proxy.util.PlatformUtil.Platform;
import ch.qos.logback.classic.Level;
import ch.qos.logback.classic.Logger;
import ch.qos.logback.classic.LoggerContext;
import net.lightbody.bmp.BrowserMobProxyServer;
public class MobProxy {
private static HashMap<Long, BrowserMobProxyServer> mobProxyServerMap = new HashMap<Long, BrowserMobProxyServer>();
public static InetSocketAddress localProxyAddress = getProxy();
public static InetSocketAddress getProxy(){
setLogger();
ProxySearch proxySearch = new ProxySearch();
// proxySearch.addStrategy(Strategy.JAVA);
// proxySearch.addStrategy(Strategy.BROWSER);
// proxySearch.addStrategy(Strategy.OS_DEFAULT);
// proxySearch.addStrategy(Strategy.ENV_VAR);
if (PlatformUtil.getCurrentPlattform() == Platform.WIN) {
proxySearch.addStrategy(Strategy.IE);
proxySearch.addStrategy(Strategy.FIREFOX);
proxySearch.addStrategy(Strategy.JAVA);
} else if (PlatformUtil.getCurrentPlattform() == Platform.LINUX) {
proxySearch.addStrategy(Strategy.GNOME);
proxySearch.addStrategy(Strategy.KDE);
proxySearch.addStrategy(Strategy.FIREFOX);
proxySearch.addStrategy(Strategy.ENV_VAR);
return null;
} else {
proxySearch.addStrategy(Strategy.OS_DEFAULT);
}
ProxySelector proxySelector = proxySearch.getProxySelector();
ProxySelector.setDefault(proxySelector);
URI home = URI.create("http://www.google.com");
System.out.println("ProxySelector: " + proxySelector);
System.out.println("URI: " + home);
List<Proxy> proxyList = proxySelector.select(home);
String host = null;
String port = null;
if (proxyList != null && !proxyList.isEmpty()) {
for (Proxy proxy : proxyList) {
System.out.println(proxy);
SocketAddress address = proxy.address();
if (address instanceof InetSocketAddress) {
host = ((InetSocketAddress) address).getHostName();
port = Integer.toString(((InetSocketAddress) address).getPort());
System.setProperty("http.proxyHost", host);
System.setProperty("http.proxyPort", port);
}
}
}
InetSocketAddress address = new InetSocketAddress(host, Integer.parseInt(port));
return address;
}
// set logger for all classes connected to MobProxy
public static void setLogger() {
LoggerContext lc = (LoggerContext) LoggerFactory. getILoggerFactory();
// lc.getLogger("ROOT").setLevel(Level.DEBUG);
for(Logger logger:lc.getLoggerList()){
logger.setLevel(Level.INFO);
}
}
public static synchronized void setProxyServer() {
BrowserMobProxyServer server = new BrowserMobProxyServer();
server.setTrustAllServers(true);
if (localProxyAddress != null){
server.setChainedProxy(localProxyAddress);
server.start();
} else {
server.start();
// filter firefox requests to mozilla when system proxy is absent
server.blacklistRequests(".*mozilla.*", 200);
}
mobProxyServerMap.put(Thread.currentThread().getId(), server);
}
public static synchronized BrowserMobProxyServer getPoxyServer() {
return mobProxyServerMap.get(Thread.currentThread().getId());
}
}
|