I am currently using LittleProxy to add some headers to a request and forward it to a server using HTTP.
I have been trying to do the same for HTTPS calls but failing.
How can I achieve the same for both HTTP and HTTPS?
Here is what I have now
httpProxyServer = DefaultHttpProxyServer.bootstrap()
.withPort(proxyConfig.getProxyPort())
.withManInTheMiddle(new SelfSignedMitmManager())
.withFiltersSource(new HttpFiltersSourceAdapter() {
String forwardBaseUrl = proxyConfig.getForwardBaseUrl();
@Override
public int getMaximumRequestBufferSizeInBytes() {
return proxyConfig.getBufferSizeInByes();
}
public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
return new HttpFiltersAdapter(originalRequest) {
@Override
public HttpResponse clientToProxyRequest(HttpObject httpObject) {
if (httpObject instanceof HttpRequest) {
HttpRequest request = (HttpRequest) httpObject;
if (null != request.headers().get(HEADER_FORWARD_BASE_URL)) {
logger.info("Using header forward-base-url: " + forwardBaseUrl);
forwardBaseUrl = request.headers().get("forward-base-url");
}
final String uri = forwardBaseUrl + request.getUri();
logger.info("Setting request uri : " + uri);
request.setUri(uri);
}
return null;
}
@Override
public HttpResponse proxyToServerRequest(HttpObject httpObject) {
if (httpObject instanceof FullHttpRequest) {
signRequest((FullHttpRequest) httpObject);
}
return null;
}
};
}
})
.start();