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
13 public static final String PROXY_HOST_PROPERTY_NAME = "http.proxyHost";
14 public static final String PROXY_PORT_PROPERTY_NAME = "http.proxyPort";
15 public static final String PROXY_USER_PROPERTY_NAME = "http.proxyUser";
16 public static final String PROXY_PASSWORD_PROPERTY_NAME = "http.proxyPassword";
17 public static final String PROXY_NON_HOSTS_PROPERTY_NAME = "http.nonProxyHosts";
18
19 public static final int DEFAULT_PROXY_PORT = 80;
20
21 private final String proxyHost;
22 private final int proxyPort;
23 private final String proxyUser;
24 private final String proxyPassword;
25 private final String[] nonProxyHosts;
26
27 public SystemPropertiesProxyConfig()
28 {
29 proxyHost = System.getProperty(PROXY_HOST_PROPERTY_NAME);
30 proxyPort = Integer.getInteger(PROXY_PORT_PROPERTY_NAME, DEFAULT_PROXY_PORT);
31 proxyUser = System.getProperty(PROXY_USER_PROPERTY_NAME);
32 proxyPassword = System.getProperty(PROXY_PASSWORD_PROPERTY_NAME);
33 nonProxyHosts = System.getProperty(PROXY_NON_HOSTS_PROPERTY_NAME, "").split("\\|");
34 }
35
36 @Override
37 public boolean isSet()
38 {
39 return StringUtils.isNotBlank(proxyHost);
40 }
41
42 @Override
43 public boolean requiresAuthentication()
44 {
45 return isSet() && StringUtils.isNotBlank(proxyUser);
46 }
47
48 @Override
49 public String getHost()
50 {
51 return proxyHost;
52 }
53
54 @Override
55 public int getPort()
56 {
57 return proxyPort;
58 }
59
60 @Override
61 public String getUser()
62 {
63 return proxyUser;
64 }
65
66 @Override
67 public String getPassword()
68 {
69 return proxyPassword;
70 }
71
72 @Override
73 public String[] getNonProxyHosts()
74 {
75 return nonProxyHosts;
76 }
77
78 @Override
79 public String toString()
80 {
81 return "SystemPropertiesProxyConfig{" +
82 "proxyHost='" + proxyHost + '\'' +
83 ", proxyPort=" + proxyPort +
84 ", proxyUser='" + proxyUser + '\'' +
85 ", proxyPassword='" + proxyPassword + '\'' +
86 ", nonProxyHosts=" + Arrays.toString(nonProxyHosts) +
87 '}';
88 }
89 }