package com.codeborne.selenide.proxy;
import io.netty.handler.codec.http.HttpRequest;
import io.netty.handler.codec.http.HttpResponse;
import net.lightbody.bmp.filters.RequestFilter;
import net.lightbody.bmp.util.HttpMessageContents;
import net.lightbody.bmp.util.HttpMessageInfo;
import java.util.logging.Level;
import java.util.logging.Logger;
public class RequestSizeWatchdog implements RequestFilter {
private static final Logger log = Logger.getLogger(RequestSizeWatchdog.class.getName());
int threshold = 2 * 1024 * 1024; // 2 MB
@Override
public HttpResponse filterRequest(HttpRequest request, HttpMessageContents contents, HttpMessageInfo messageInfo) {
if (contents.getBinaryContents().length > threshold) {
log.warning("Too large request " + messageInfo.getUrl() + ": " + contents.getBinaryContents().length + " bytes");
if (log.isLoggable(Level.FINEST)) {
log.finest("Request content: " + contents.getTextContents());
}
}
return null;
}
}