Возврат предопределенного HTML-содержимого для URL-адресов https с помощью LittleProxy
Я использую небольшой прокси https://github.com/adamfisk/LittleProxy чтобы создать тестовый прокси, который возвращает некоторый предопределенный HTML-контент для данного URL. Код для того же:
HttpProxyServer server =
DefaultHttpProxyServer.bootstrap()
.withPort(8080)
.withFiltersSource(new HttpFiltersSourceAdapter() {
public HttpFilters filterRequest(HttpRequest originalRequest, ChannelHandlerContext ctx) {
return new HttpFiltersAdapter(originalRequest) {
@Override
public HttpResponse clientToProxyRequest(HttpObject httpObject) {
// My custom implementataion to return the locally stored content based in input url
String content = getContent(request.getUri())
final ByteBuf buffer = Unpooled.copiedBuffer(content, CharsetUtil.UTF_8);
HttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, status, buffer);
HttpHeaders.setKeepAlive(response, false);
HttpHeaders.setHeader(response, "Referrer-Policy", "no-referrer");
return response;
}
@Override
public HttpObject serverToProxyResponse(HttpObject httpObject) {
return httpObject;
}
};
}
})
.start();
Я вызываю прокси для URL, используя следующий код:
public HttpResponse performHttpGet(String url, String proxyHost, int port) throws Exception {
CloseableHttpClient http = HttpClients.custom().setProxy(new HttpHost(proxyHost, port)).build();
HttpGet get = new HttpGet(url);
return http.execute(get);
}
Для URL-адресов http вызов get get работает нормально, но для URL-адресов https вызов не выполняется, поскольку он выполняет запрос CONNECT для URL-адресов https. Есть ли способ вернуть тот же ответ для URL https, а также в небольшом прокси?
Как я могу использовать MITM для этого случая использования, когда я хочу отправить некоторый предопределенный контент для URL-адресов https вместо фактического вызова на веб-сервер.