Skip to content

Instantly share code, notes, and snippets.

@seeni-dev
Created April 17, 2021 04:25
Show Gist options
  • Save seeni-dev/5faff6dc88e052e31ac3a419b3b40b57 to your computer and use it in GitHub Desktop.
Save seeni-dev/5faff6dc88e052e31ac3a419b3b40b57 to your computer and use it in GitHub Desktop.
MockServer to proxy https sites
package com.example.org;
import org.mockserver.integration.ClientAndServer;
import org.mockserver.mock.action.ExpectationForwardAndResponseCallback;
import org.mockserver.model.HttpRequest;
import org.mockserver.model.HttpResponse;
import static org.mockserver.model.Header.header;
import static org.mockserver.model.HttpClassCallback.callback;
import static org.mockserver.model.HttpRequest.request;
public class ProxyToHttps {
public static void responseClassCallback(int port) {
ClientAndServer clientAndServer = new ClientAndServer(port);
clientAndServer
.when(
request("/")
).forward(
callback()
.withCallbackClass(TestExpectationForwardCallback.class)
);
}
public static void main(String[] args) {
responseClassCallback(1080);
}
public static class TestExpectationForwardCallback implements ExpectationForwardAndResponseCallback {
@Override
public HttpRequest handle(HttpRequest httpRequest) {
return httpRequest.clone().removeHeader("Host")
.withHeader(header("Host", "www.google.com"))
.withSecure(true);
}
@Override
public HttpResponse handle(HttpRequest httpRequest, HttpResponse httpResponse) throws Exception {
return httpResponse;
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment