package logbook.server.proxy; import java.nio.ByteBuffer; import java.util.Arrays; import javax.servlet.http.HttpServletRequest; import org.eclipse.jetty.client.api.Request; import org.eclipse.jetty.client.api.Request.ContentListener; /** * リクエストをキャプチャします * */ public final class RequestContentListener implements ContentListener { private final HttpServletRequest httpRequest; /** * @param request */ public RequestContentListener(HttpServletRequest request) { this.httpRequest = request; } /* * 必要なPOSTデータの場合キャプチャします */ @Override public void onContent(Request request, ByteBuffer buffer) { if (((buffer.limit() > 0) && (buffer.limit() <= Filter.MAX_POST_FIELD_SIZE)) && Filter.isNeed(request.getHost())) { this.httpRequest.setAttribute(Filter.REQUEST_BODY, Arrays.copyOf(buffer.array(), buffer.limit())); } } }