public static String getMimeType(HttpRequest request, HttpResponse original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; }
public static String getMimeType(HttpRequest request, HttpResponseBuilder original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; } }
public static String getMimeType(HttpRequest request, HttpResponseBuilder original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; } }
public static String getMimeType(HttpRequest request, HttpResponse original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; }
public static String getMimeType(HttpRequest request, HttpResponse original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; }
public static String getMimeType(HttpRequest request, HttpResponseBuilder original) { String mimeType = request.getRewriteMimeType(); if (mimeType == null) { mimeType = original.getHeader("Content-Type"); } return mimeType != null ? mimeType.toLowerCase() : null; } }
/** * Rewrite the content type of the final http response if the request has the * rewrite-mime-type param. * @param req The http request. * @param response The final http response to be returned to user. */ public static void maybeRewriteContentType(HttpRequest req, HttpResponseBuilder response) { String responseType = response.getHeader("Content-Type"); String requiredType = req.getRewriteMimeType(); if (!Strings.isNullOrEmpty(requiredType)) { // Use a 'Vary' style check on the response if (requiredType.endsWith("/*") && !Strings.isNullOrEmpty(responseType)) { String requiredTypePrefix = requiredType.substring(0, requiredType.length() - 1); if (!responseType.toLowerCase().startsWith(requiredTypePrefix.toLowerCase())) { // TODO: We are currently setting the content type to something like x/* (e.g. text/*) // which is not a valid content type. Need to fix this. response.setHeader("Content-Type", requiredType); } } else { response.setHeader("Content-Type", requiredType); } } }
/** * Rewrite the content type of the final http response if the request has the * rewrite-mime-type param. * @param req The http request. * @param response The final http response to be returned to user. */ public static void maybeRewriteContentType(HttpRequest req, HttpResponseBuilder response) { String responseType = response.getHeader("Content-Type"); String requiredType = req.getRewriteMimeType(); if (!StringUtils.isEmpty(requiredType)) { // Use a 'Vary' style check on the response if (requiredType.endsWith("/*") && !StringUtils.isEmpty(responseType)) { String requiredTypePrefix = requiredType.substring(0, requiredType.length() - 1); if (!responseType.toLowerCase().startsWith(requiredTypePrefix.toLowerCase())) { // TODO: We are currently setting the content type to something like x/* (e.g. text/*) // which is not a valid content type. Need to fix this. response.setHeader("Content-Type", requiredType); } } else { response.setHeader("Content-Type", requiredType); } } }
/** * Rewrite the content type of the final http response if the request has the * rewrite-mime-type param. * @param req The http request. * @param response The final http response to be returned to user. */ public static void maybeRewriteContentType(HttpRequest req, HttpResponseBuilder response) { String responseType = response.getHeader("Content-Type"); String requiredType = req.getRewriteMimeType(); if (!StringUtils.isEmpty(requiredType)) { // Use a 'Vary' style check on the response if (requiredType.endsWith("/*") && !StringUtils.isEmpty(responseType)) { String requiredTypePrefix = requiredType.substring(0, requiredType.length() - 1); if (!responseType.toLowerCase().startsWith(requiredTypePrefix.toLowerCase())) { // TODO: We are currently setting the content type to something like x/* (e.g. text/*) // which is not a valid content type. Need to fix this. response.setHeader("Content-Type", requiredType); } } else { response.setHeader("Content-Type", requiredType); } } }
public void rewrite(HttpRequest request, HttpResponseBuilder resp) { // Content fetched through the proxy can stipulate that it must be sanitized. if (request.isSanitizationRequested() && featureConfigFactory.get(request).shouldRewriteURL(request.getUri().toString())) { if (StringUtils.isEmpty(request.getRewriteMimeType())) { LOG.log(Level.WARNING, "Request to sanitize without content type for " + request.getUri()); resp.setContent(""); } else if (request.getRewriteMimeType().equalsIgnoreCase("text/css")) { rewriteProxiedCss(request, resp); } else if (request.getRewriteMimeType().toLowerCase().startsWith("image/")) { rewriteProxiedImage(request, resp); } else { LOG.log(Level.WARNING, "Request to sanitize unknown content type " + request.getRewriteMimeType() + " for " + request.getUri()); resp.setContent(""); } } }
public void rewrite(HttpRequest request, HttpResponseBuilder resp) { // Content fetched through the proxy can stipulate that it must be sanitized. if (request.isSanitizationRequested() && featureConfigFactory.get(request).shouldRewriteURL(request.getUri().toString())) { if (StringUtils.isEmpty(request.getRewriteMimeType())) { LOG.log(Level.WARNING, "Request to sanitize without content type for " + request.getUri()); resp.setContent(""); } else if (request.getRewriteMimeType().equalsIgnoreCase("text/css")) { rewriteProxiedCss(request, resp); } else if (request.getRewriteMimeType().toLowerCase().startsWith("image/")) { rewriteProxiedImage(request, resp); } else { LOG.log(Level.WARNING, "Request to sanitize unknown content type " + request.getRewriteMimeType() + " for " + request.getUri()); resp.setContent(""); } } }
public void rewrite(HttpRequest request, HttpResponseBuilder resp, Gadget gadget) { // Content fetched through the proxy can stipulate that it must be sanitized. if (request.isSanitizationRequested() && featureConfigFactory.get(request).shouldRewriteURL(request.getUri().toString())) { if (Strings.isNullOrEmpty(request.getRewriteMimeType())) { if (LOG.isLoggable(Level.INFO)) { LOG.logp(Level.INFO, classname, "rewrite", MessageKeys.REQUEST_TO_SANITIZE_WITHOUT_CONTENT,new Object[] {request.getUri()}); } resp.setContent(""); } else if (request.getRewriteMimeType().equalsIgnoreCase("text/css")) { rewriteProxiedCss(request, resp); } else if (request.getRewriteMimeType().toLowerCase().startsWith("image/")) { rewriteProxiedImage(request, resp); } else { if (LOG.isLoggable(Level.WARNING)) { LOG.logp(Level.WARNING, classname, "rewrite", MessageKeys.REQUEST_TO_SANITIZE_UNKNOW_CONTENT, new Object[] {request.getRewriteMimeType(),request.getUri()}); } resp.setContent(""); } } }
private HttpRequest getMockImageRequest(String height, String width, String quality, boolean noExpand, String mimeType, String ua) { HttpRequest request = EasyMock.createMock(HttpRequest.class); expect(request.getUri()).andReturn(IMAGE_URI).anyTimes(); expect(request.getAuthType()).andReturn(AuthType.NONE).anyTimes(); expect(request.getSecurityToken()).andReturn(null).anyTimes(); expect(request.getParam(Param.RESIZE_HEIGHT.getKey())).andReturn(height).anyTimes(); expect(request.getParam(Param.RESIZE_WIDTH.getKey())).andReturn(width).anyTimes(); expect(request.getParam(Param.RESIZE_QUALITY.getKey())).andReturn(quality).anyTimes(); expect(request.getParam(Param.NO_EXPAND.getKey())).andReturn(noExpand ? "1" : null).anyTimes(); expect(request.getRewriteMimeType()).andReturn(mimeType).anyTimes(); expect(request.getHeader("User-Agent")).andReturn(ua).anyTimes(); replay(request); return request; }
private HttpRequest getMockImageRequest(String height, String width, String quality, boolean noExpand, String mimeType, String ua) { HttpRequest request = EasyMock.createMock(HttpRequest.class); expect(request.getUri()).andReturn(IMAGE_URI).anyTimes(); expect(request.getAuthType()).andReturn(AuthType.NONE).anyTimes(); expect(request.getSecurityToken()).andReturn(null).anyTimes(); expect(request.getParam(Param.RESIZE_HEIGHT.getKey())).andReturn(height).anyTimes(); expect(request.getParam(Param.RESIZE_WIDTH.getKey())).andReturn(width).anyTimes(); expect(request.getParam(Param.RESIZE_QUALITY.getKey())).andReturn(quality).anyTimes(); expect(request.getParam(Param.NO_EXPAND.getKey())).andReturn(noExpand ? "1" : null).anyTimes(); expect(request.getRewriteMimeType()).andReturn(mimeType).anyTimes(); expect(request.getHeader("User-Agent")).andReturn(ua).anyTimes(); replay(request); return request; }
private void testNoRewriteUnknownMimeType(Gadget gadget) throws Exception { HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andReturn("unknown"); control.replay(); int changesBefore = fakeResponse.getNumChanges(); rewriter.rewrite(req, fakeResponse, gadget); assertEquals(changesBefore, fakeResponse.getNumChanges()); control.verify(); }
private void testNoRewriteUnknownMimeType(Gadget gadget) throws Exception { HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andReturn("unknown"); control.replay(); int changesBefore = fakeResponse.getNumChanges(); rewriter.rewrite(req, fakeResponse, gadget); assertEquals(changesBefore, fakeResponse.getNumChanges()); control.verify(); }
@Test public void testNoRewriteUnknownMimeType() throws Exception { HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andReturn("unknown"); control.replay(); int changesBefore = fakeResponse.getNumChanges(); rewriter.rewrite(req, fakeResponse); assertEquals(changesBefore, fakeResponse.getNumChanges()); control.verify(); }
/** * This test ensures that we dont call HttpResponse.getResponseAsString if no content * rewriter does so either. This is important * from a performance and content consistency standpoint. Because HttpResponse is final * we test that no new response object was created. */ @Test public void testNoDecodeHttpResponseForUnRewriteableMimeTypes() throws Exception { List<ResponseRewriter> rewriters = Lists.newArrayList(); rewriters.add(new ResponseRewriter() { public void rewrite(HttpRequest request, HttpResponseBuilder response, Gadget gadget) throws RewritingException { // Do nothing. } }); registry = new DefaultResponseRewriterRegistry(rewriters, parser); HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andStubReturn("unknown"); control.replay(); HttpResponse rewritten = registry.rewriteHttpResponse(req, fakeResponse.create(), null); // Assert that response is untouched assertSame(rewritten, fakeResponse.create()); control.verify(); } }
/** * This test ensures that we dont call HttpResponse.getResponseAsString if no content * rewriter does so either. This is important * from a performance and content consistency standpoint. Because HttpResponse is final * we test that no new response object was created. */ @Test public void testNoDecodeHttpResponseForUnRewriteableMimeTypes() throws Exception { List<ResponseRewriter> rewriters = Lists.newArrayList(); rewriters.add(new ResponseRewriter() { public void rewrite(HttpRequest request, HttpResponseBuilder response) throws RewritingException { // Do nothing. } }); registry = new DefaultResponseRewriterRegistry(rewriters, parser); HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andStubReturn("unknown"); control.replay(); HttpResponse rewritten = registry.rewriteHttpResponse(req, fakeResponse.create()); // Assert that response is untouched assertSame(rewritten, fakeResponse.create()); control.verify(); } }
/** * This test ensures that we dont call HttpResponse.getResponseAsString if no content * rewriter does so either. This is important * from a performance and content consistency standpoint. Because HttpResponse is final * we test that no new response object was created. */ @Test public void testNoDecodeHttpResponseForUnRewriteableMimeTypes() throws Exception { List<ResponseRewriter> rewriters = Lists.newArrayList(); rewriters.add(new ResponseRewriter() { public void rewrite(HttpRequest request, HttpResponseBuilder response, Gadget gadget) throws RewritingException { // Do nothing. } }); registry = new DefaultResponseRewriterRegistry(rewriters, parser); HttpRequest req = control.createMock(HttpRequest.class); EasyMock.expect(req.getRewriteMimeType()).andStubReturn("unknown"); control.replay(); HttpResponse rewritten = registry.rewriteHttpResponse(req, fakeResponse.create(), null); // Assert that response is untouched assertSame(rewritten, fakeResponse.create()); control.verify(); } }