1 package org.apache.maven.wagon.providers.http;
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22 import org.apache.maven.wagon.Wagon;
23 import org.apache.maven.wagon.proxy.ProxyInfo;
24 import org.apache.maven.wagon.repository.Repository;
25 import org.mortbay.jetty.Connector;
26 import org.mortbay.jetty.Server;
27 import org.mortbay.jetty.security.SslSocketConnector;
28
29 public class LightweightHttpsWagonTest
30 extends LightweightHttpWagonTest
31 {
32 protected String getProtocol()
33 {
34 return "https";
35 }
36
37 protected void addConnectors( Server server )
38 {
39 System.setProperty( "javax.net.ssl.trustStore",
40 getTestFile( "src/test/resources/ssl/keystore" ).getAbsolutePath() );
41
42 SslSocketConnector connector = new SslSocketConnector();
43 connector.setPort( server.getConnectors()[0].getPort() );
44 connector.setKeystore( getTestPath( "src/test/resources/ssl/keystore" ) );
45 connector.setPassword( "wagonhttp" );
46 connector.setKeyPassword( "wagonhttp" );
47 connector.setTruststore( getTestPath( "src/test/resources/ssl/keystore" ) );
48 connector.setTrustPassword( "wagonhttp" );
49 server.setConnectors( new Connector[] { connector } );
50 }
51
52 public void testHttpsProxyReset()
53 throws Exception
54 {
55 ProxyInfo proxyInfo = new ProxyInfo();
56 proxyInfo.setType( "https" );
57 proxyInfo.setHost( "proxyhost" );
58 proxyInfo.setPort( 1234 );
59 proxyInfo.setNonProxyHosts( "non" );
60
61 Repository repository = new Repository();
62
63 String proxyHost = System.getProperty( "https.proxyHost" );
64 String proxyPort = System.getProperty( "https.proxyPort" );
65 String nonProxyHosts = System.getProperty( "https.nonProxyHosts" );
66
67 System.getProperties().remove( "https.proxyHost" );
68 System.getProperties().remove( "https.proxyPort" );
69
70 Wagon wagon = getWagon();
71
72 wagon.connect( repository, proxyInfo );
73
74 assertEquals( "proxyhost", System.getProperty( "https.proxyHost" ) );
75 assertEquals( "1234", System.getProperty( "https.proxyPort" ) );
76 assertEquals( "non", System.getProperty( "https.nonProxyHosts" ) );
77
78 wagon.disconnect();
79
80 assertNull( System.getProperty( "https.proxyHost" ) );
81 assertNull( System.getProperty( "https.proxyPort" ) );
82
83 System.setProperty( "https.proxyHost", "host" );
84 System.setProperty( "https.proxyPort", "port" );
85 System.setProperty( "https.nonProxyHosts", "hosts" );
86
87 wagon = getWagon();
88
89 wagon.connect( repository, proxyInfo );
90
91 assertEquals( "proxyhost", System.getProperty( "https.proxyHost" ) );
92 assertEquals( "1234", System.getProperty( "https.proxyPort" ) );
93 assertEquals( "non", System.getProperty( "https.nonProxyHosts" ) );
94
95 wagon.disconnect();
96
97 assertEquals( "host", System.getProperty( "https.proxyHost" ) );
98 assertEquals( "port", System.getProperty( "https.proxyPort" ) );
99 assertEquals( "hosts", System.getProperty( "https.nonProxyHosts" ) );
100
101 wagon = getWagon();
102
103 wagon.connect( repository );
104
105 assertNull( System.getProperty( "https.proxyHost" ) );
106 assertNull( System.getProperty( "https.proxyPort" ) );
107
108 wagon.disconnect();
109
110 assertEquals( "host", System.getProperty( "https.proxyHost" ) );
111 assertEquals( "port", System.getProperty( "https.proxyPort" ) );
112 assertEquals( "hosts", System.getProperty( "https.nonProxyHosts" ) );
113
114 if ( proxyHost != null )
115 {
116 System.setProperty( "https.proxyHost", proxyHost );
117 }
118 else
119 {
120 System.getProperties().remove( "https.proxyHost" );
121 }
122 if ( proxyPort != null )
123 {
124 System.setProperty( "https.proxyPort", proxyPort );
125 }
126 else
127 {
128 System.getProperties().remove( "https.proxyPort" );
129 }
130 if ( nonProxyHosts != null )
131 {
132 System.setProperty( "https.nonProxyHosts", nonProxyHosts );
133 }
134 else
135 {
136 System.getProperties().remove( "https.nonProxyHosts" );
137 }
138 }
139
140 }