View Javadoc

1   package com.atlassian.sal.core.net;
2   
3   import org.apache.commons.lang.StringUtils;
4   
5   import java.util.Arrays;
6   
7   /**
8    * Proxy configuration drawn from standard System properties
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  }