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      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  }