@Test public void testUnknownHeadersOnRequestsAreForwarded() throws Exception { request.addHeader("X-Unknown-Header", "blahblah"); final Capture<ClassicHttpRequest> reqCap = EasyMock.newCapture(); EasyMock.expect( mockExecChain.proceed( EasyMock.capture(reqCap), EasyMock.isA(ExecChain.Scope.class))).andReturn(originResponse); replayMocks(); execute(request); verifyMocks(); final ClassicHttpRequest forwarded = reqCap.getValue(); final Header[] hdrs = forwarded.getHeaders("X-Unknown-Header"); Assert.assertEquals(1, hdrs.length); Assert.assertEquals("blahblah", hdrs[0].getValue()); }
@Override protected void onRequestSubmitted(final ClassicHttpRequest request) { if (request != null && this.headerLog.isDebugEnabled()) { this.headerLog.debug(id + " >> " + new RequestLine(request)); final Header[] headers = request.getHeaders(); for (final Header header : headers) { this.headerLog.debug(this.id + " >> " + header.toString()); } } }
@Override protected void onRequestReceived(final ClassicHttpRequest request) { if (request != null && this.headerLog.isDebugEnabled()) { this.headerLog.debug(id + " >> " + new RequestLine(request)); final Header[] headers = request.getHeaders(); for (final Header header : headers) { this.headerLog.debug(this.id + " >> " + header.toString()); } } }
@Override protected void onRequestSubmitted(final ClassicHttpRequest request) { if (request != null && this.headerLog.isDebugEnabled()) { this.headerLog.debug(this.id + " >> " + new RequestLine(request)); final Header[] headers = request.getHeaders(); for (final Header header : headers) { this.headerLog.debug(this.id + " >> " + header.toString()); } } }
@Override protected void onRequestSubmitted(final ClassicHttpRequest request) { if (request != null && this.headerLog.isDebugEnabled()) { this.headerLog.debug(id + " >> " + new RequestLine(request)); final Header[] headers = request.getHeaders(); for (final Header header : headers) { this.headerLog.debug(this.id + " >> " + header.toString()); } } }
@Override protected void onRequestReceived(final ClassicHttpRequest request) { if (request != null && this.headerLog.isDebugEnabled()) { this.headerLog.debug(id + " >> " + new RequestLine(request)); final Header[] headers = request.getHeaders(); for (final Header header : headers) { this.headerLog.debug(this.id + " >> " + header.toString()); } } }
boolean foundEtag1 = false; boolean foundEtag2 = false; for(final Header h : captured.getHeaders("If-None-Match")) { for(final String etag : h.getValue().split(",")) { if ("\"etag1\"".equals(etag.trim())) {
if (expectedHeaders != null) { final Map<String, String> actualHeadersMap = new HashMap<>(); final Header[] actualHeaders = request.getHeaders(); for (final Header header : actualHeaders) { actualHeadersMap.put(header.getName(), header.getValue());
if (expectedHeaders != null) { final Map<String, String> actualHeadersMap = new HashMap<>(); final Header[] actualHeaders = request.getHeaders(); for (final Header header : actualHeaders) { actualHeadersMap.put(header.getName(), header.getValue());
headerGroup.setHeaders(request.getHeaders());
@Test public void testBasicMessageParsing() throws Exception { final String s = "GET / HTTP/1.1\r\n" + "Host: localhost\r\n" + "User-Agent: whatever\r\n" + "Cookie: c1=stuff\r\n" + "\r\n"; final ByteArrayInputStream inputStream = new ByteArrayInputStream(s.getBytes(StandardCharsets.US_ASCII)); final SessionInputBuffer inBuffer = new SessionInputBufferImpl(16, StandardCharsets.US_ASCII.newDecoder()); final DefaultHttpRequestParser parser = new DefaultHttpRequestParser(); final ClassicHttpRequest httprequest = parser.parse(inBuffer, inputStream); Assert.assertEquals("GET", httprequest.getMethod()); Assert.assertEquals("/", httprequest.getPath()); final Header[] headers = httprequest.getHeaders(); Assert.assertEquals(3, headers.length); }
@Test public void testBasicMessageParsingLeadingEmptyLines() throws Exception { final String s = "\r\n" + "\r\n" + "GET / HTTP/1.1\r\n" + "Host: localhost\r\n" + "\r\n"; final ByteArrayInputStream inputStream = new ByteArrayInputStream(s.getBytes(StandardCharsets.US_ASCII)); final SessionInputBuffer inBuffer = new SessionInputBufferImpl(16, StandardCharsets.US_ASCII.newDecoder()); final DefaultHttpRequestParser parser = new DefaultHttpRequestParser( H1Config.custom().setMaxEmptyLineCount(3).build()); final ClassicHttpRequest httprequest = parser.parse(inBuffer, inputStream); Assert.assertEquals("GET", httprequest.getMethod()); Assert.assertEquals("/", httprequest.getPath()); final Header[] headers = httprequest.getHeaders(); Assert.assertEquals(1, headers.length); }
if (!StandardMethods.isSafe(request.getMethod())) { final HttpGet httpGet = new HttpGet(redirectUri); httpGet.setHeaders(originalRequest.getHeaders()); redirect = httpGet; } else {
@Test public void testMessageParsingTimeout() throws Exception { final String s = "GET \000/ HTTP/1.1\r\000\n" + "Host: loca\000lhost\r\n" + "User-Agent: whatever\r\n" + "Coo\000kie: c1=stuff\r\n" + "\000\r\n"; final TimeoutByteArrayInputStream inputStream = new TimeoutByteArrayInputStream(s.getBytes(StandardCharsets.US_ASCII)); final SessionInputBuffer inBuffer = new SessionInputBufferImpl(16); final DefaultHttpRequestParser parser = new DefaultHttpRequestParser(); int timeoutCount = 0; ClassicHttpRequest httprequest = null; for (int i = 0; i < 10; i++) { try { httprequest = parser.parse(inBuffer, inputStream); break; } catch (final InterruptedIOException ex) { timeoutCount++; } } Assert.assertNotNull(httprequest); Assert.assertEquals(5, timeoutCount); Assert.assertEquals("GET", httprequest.getMethod()); Assert.assertEquals("/", httprequest.getPath()); final Header[] headers = httprequest.getHeaders(); Assert.assertEquals(3, headers.length); }