1 package com.atlassian.sal.core.net;
2
3 import org.apache.commons.lang.StringUtils;
4
5 import java.util.Arrays;
6
7
8
9
10 public class SystemPropertiesProxyConfig implements ProxyConfig {
11
12 public static final String PROXY_HOST_PROPERTY_NAME = "http.proxyHost";
13 public static final String PROXY_PORT_PROPERTY_NAME = "http.proxyPort";
14 public static final String PROXY_USER_PROPERTY_NAME = "http.proxyUser";
15 public static final String PROXY_PASSWORD_PROPERTY_NAME = "http.proxyPassword";
16 public static final String PROXY_NON_HOSTS_PROPERTY_NAME = "http.nonProxyHosts";
17
18 public static final int DEFAULT_PROXY_PORT = 80;
19
20 private final String proxyHost;
21 private final int proxyPort;
22 private final String proxyUser;
23 private final String proxyPassword;
24 private final String[] nonProxyHosts;
25
26 public SystemPropertiesProxyConfig() {
27 proxyHost = System.getProperty(PROXY_HOST_PROPERTY_NAME);
28 proxyPort = Integer.getInteger(PROXY_PORT_PROPERTY_NAME, DEFAULT_PROXY_PORT);
29 proxyUser = System.getProperty(PROXY_USER_PROPERTY_NAME);
30 proxyPassword = System.getProperty(PROXY_PASSWORD_PROPERTY_NAME);
31 nonProxyHosts = System.getProperty(PROXY_NON_HOSTS_PROPERTY_NAME, "").split("\\|");
32 }
33
34 @Override
35 public boolean isSet() {
36 return StringUtils.isNotBlank(proxyHost);
37 }
38
39 @Override
40 public boolean requiresAuthentication() {
41 return isSet() && StringUtils.isNotBlank(proxyUser);
42 }
43
44 @Override
45 public String getHost() {
46 return proxyHost;
47 }
48
49 @Override
50 public int getPort() {
51 return proxyPort;
52 }
53
54 @Override
55 public String getUser() {
56 return proxyUser;
57 }
58
59 @Override
60 public String getPassword() {
61 return proxyPassword;
62 }
63
64 @Override
65 public String[] getNonProxyHosts() {
66 return nonProxyHosts;
67 }
68
69 @Override
70 public String toString() {
71 return "SystemPropertiesProxyConfig{" +
72 "proxyHost='" + proxyHost + '\'' +
73 ", proxyPort=" + proxyPort +
74 ", proxyUser='" + proxyUser + '\'' +
75 ", proxyPassword='" + proxyPassword + '\'' +
76 ", nonProxyHosts=" + Arrays.toString(nonProxyHosts) +
77 '}';
78 }
79 }