@Override public void filterResponse(HttpResponse response, HttpMessageContents contents, HttpMessageInfo messageInfo) { if (contents.getBinaryContents().length > threshold) { log.warning("Too large response " + messageInfo.getUrl() + ": " + contents.getBinaryContents().length + " bytes"); if (log.isLoggable(Level.FINEST)) { log.finest("Response content: " + contents.getTextContents()); } } } }
@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; } }
@Override public void filterResponse(HttpResponse response, HttpMessageContents contents, HttpMessageInfo messageInfo) { for (ResponseFilterRule rule: ruleList) { if(rule.getEnable()) { if (contents.isText() && messageInfo.getUrl().contains(rule.getUrl())) { String originContent = contents.getTextContents(); if (originContent != null) { contents.setTextContents(contents.getTextContents().replaceAll( rule.getReplaceRegex(), rule.getReplaceContent())); } } } } } });
@Override public void filterResponse(HttpResponse response, HttpMessageContents contents, HttpMessageInfo messageInfo) { if (!active) return; responses.add(new Response(messageInfo.getUrl(), response.getStatus().code(), response.getStatus().reasonPhrase(), toMap(response.headers()), contents.getContentType(), contents.getTextContents() )); if (response.getStatus().code() < 200 || response.getStatus().code() >= 300) return; String fileName = getFileName(response); if (fileName == null) return; File file = downloader.prepareTargetFile(config, fileName); try { FileUtils.writeByteArrayToFile(file, contents.getBinaryContents()); downloadedFiles.add(file); } catch (IOException e) { log.log(Level.SEVERE, "Failed to save downloaded file to " + file.getAbsolutePath() + " for url " + messageInfo.getUrl(), e); } }
@Override public void filterResponse(HttpResponse httpResponse, HttpMessageContents httpMessageContents, HttpMessageInfo httpMessageInfo) { if (shouldInjectJavascriptPredicate.test(httpMessageInfo.getOriginalRequest())) { httpMessageContents.setTextContents(injectionCode + httpMessageContents.getTextContents()); } } }
@Override public void filterResponse(HttpResponse httpResponse, HttpMessageContents httpMessageContents, HttpMessageInfo httpMessageInfo) { logger.debug(replayingState.getSubstitutions().toString()); Optional<String> substitutionsInjectionOptional = getSubstitutionEmittingCode(); if (shouldInjectJavascriptPredicate.test(httpMessageInfo.getOriginalRequest())) { httpMessageContents.setTextContents(injectionCode + substitutionsInjectionOptional.orElse("") + httpMessageContents.getTextContents()); } replayingState.removeHttpRequestFromQueue(httpMessageInfo.getOriginalRequest()); replayingState.signalizeIfNoHttpQueriesInQueue(); }
@Override public void filterResponse(HttpResponse response, HttpMessageContents contents, HttpMessageInfo messageInfo) { if (rewrites.isEmpty()) { return; } String reqUrl = messageInfo.getOriginalUrl(); for (RewriteItem rewriteItem : rewrites) { if (reqUrl.matches(rewriteItem.getHost())) { // headers rewrite LOGGER.debug("Rewrite rule will be applied for host: ".concat(reqUrl)); applyHeaders(response, rewriteItem.getHeaders()); // body rewrite String content = contents.getTextContents(); content.replaceAll(rewriteItem.getRegex(), rewriteItem.getReplacement()); contents.setTextContents(content); } } }
@Override public HttpResponse filterRequest(HttpRequest rq, HttpMessageContents contents, HttpMessageInfo messageInfo) { if (rewrites.isEmpty()) { return null; } String reqUrl = rq.getUri(); for (RewriteItem rewriteItem : rewrites) { if(reqUrl.matches(rewriteItem.getHost())) { // headers rewrite LOGGER.debug("Rewrite rule will be applied for host: ".concat(reqUrl)); rq = applyHeaders(rq, rewriteItem.getHeaders()); // body rewrite String content = contents.getTextContents(); content.replaceAll(rewriteItem.getRegex(), rewriteItem.getReplacement()); contents.setTextContents(content); } } return null; }