Skip to content

Commit 177f6da

Browse files
authored
use of dynamic port for http redirect to https test (#167)
Signed-off-by: Olivier Lamy <olamy@apache.org>
1 parent 88119f2 commit 177f6da

File tree

1 file changed

+11
-6
lines changed

1 file changed

+11
-6
lines changed

src/test/java/winstone/HttpsConnectorFactoryTest.java

Lines changed: 11 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
package winstone;
22

33
import org.apache.commons.io.IOUtils;
4+
import org.eclipse.jetty.server.HttpConnectionFactory;
45
import org.eclipse.jetty.server.LowResourceMonitor;
56
import org.eclipse.jetty.server.ServerConnector;
67
import org.junit.Test;
@@ -101,20 +102,24 @@ public void httpRedirect() throws Exception {
101102
Map<String,String> args = new HashMap<>();
102103
args.put("warfile", "target/test-classes/test.war");
103104
args.put("prefix", "/");
104-
// TODO not sure why but random port doesn't work when using redirect
105-
args.put("httpPort", "55708"); // 0
106-
args.put("httpsPort", "55709"); // 0
105+
args.put("httpPort", "0");
106+
args.put("httpsPort", "0");
107107
args.put("httpsRedirectHttp", "true");
108108
winstone = new Launcher(args);
109109
List<ServerConnector> serverConnectors =
110110
Arrays.asList( winstone.server.getConnectors() )
111111
.stream().map(connector -> (ServerConnector)connector ).collect(Collectors.toList());
112-
int httpPort = serverConnectors.stream()
113-
.filter(serverConnector -> !serverConnector.getDefaultProtocol().startsWith("SSL"))
114-
.findFirst().get().getLocalPort();
112+
115113
int httpsPort = serverConnectors.stream()
116114
.filter(serverConnector -> serverConnector.getDefaultProtocol().startsWith("SSL"))
117115
.findFirst().get().getLocalPort();
116+
ServerConnector scNonSsl = serverConnectors.stream()
117+
.filter(serverConnector -> !serverConnector.getDefaultProtocol().startsWith("SSL"))
118+
.findFirst().get();
119+
int httpPort = scNonSsl.getLocalPort();
120+
121+
scNonSsl.getConnectionFactory(HttpConnectionFactory.class).getHttpConfiguration().setSecurePort(httpsPort);
122+
118123
requestRedirect(new TrustEveryoneManager(), httpPort, httpsPort);
119124

120125
// also verify that directly accessing the resource works.

0 commit comments

Comments
 (0)