@Override public FluentCaseInsensitiveStringsMap getHeaders() { if (!initialized) { synchronized (headers) { if (!initialized) { initialized = true; final MimeHeaders headersLocal = response.getHeaders(); for (int i = 0; i < headersLocal.size(); i++) { headers.add(headersLocal.getName(i).toString(Charsets.ASCII_CHARSET), headersLocal.getValue(i).toString(Charsets.ASCII_CHARSET)); } } } } return headers; }
private void addAcceptHeaders(final HttpRequestPacket requestPacket) { final MimeHeaders headers = requestPacket.getHeaders(); if (config.isCompressionEnforced() && !headers.contains(Header.AcceptEncoding)) { headers.addValue(Header.AcceptEncoding).setString("gzip"); } if (!headers.contains(Header.Accept)) { headers.addValue(Header.Accept).setString("*/*"); } }
public boolean applyDecoding(HttpHeader httpPacket) { final HttpResponsePacket httpResponse = (HttpResponsePacket) httpPacket; final DataChunk bc = httpResponse.getHeaders().getValue(Header.ContentEncoding); return bc != null && bc.indexOf("gzip", 0) != -1; }
@Override public String resolve(final Request request) { try { final RequestURIRef uriRef = request.getRequest().getRequestURIRef(); uriRef.setDefaultURIEncoding(httpHandler.getRequestURIEncoding()); final DataChunk decodedURI = uriRef.getDecodedRequestURIBC( httpHandler.isAllowEncodedSlash()); final int pos = decodedURI.indexOf(';', 0); return pos < 0 ? decodedURI.toString() : decodedURI.toString(0, pos); } catch (CharConversionException e) { throw new IllegalStateException(e); } }
private static void copyBufferChunk(DataChunk source, DataChunk dest) { final BufferChunk bc = source.getBufferChunk(); int l = bc.getLength(); byte[] bytes = new byte[l]; final Buffer b = bc.getBuffer(); int oldPos = b.position(); try { b.position(bc.getStart()); bc.getBuffer().get(bytes, 0, l); dest.setBytes(bytes); } finally { b.position(oldPos); } }
private static void prepareRequest(final HttpRequestPacket request) { String contentType = request.getContentType(); if (contentType != null) { request.getHeaders().setValue(Header.ContentType).setString(contentType); } }
private static void processNormalHeader(final HttpHeader httpHeader, final String name, final String value) { if (name.equals(Header.Host.getLowerCase())) { return; } final MimeHeaders mimeHeaders = httpHeader.getHeaders(); final DataChunk valueChunk = mimeHeaders.addValue(name); validateHeaderCharacters(name, value); valueChunk.setString(value); finalizeKnownHeader(httpHeader, name, value); }
public static Protocol valueOf(final DataChunk protocolC) { if (protocolC.getLength() == 0) { return Protocol.HTTP_0_9; } else if (protocolC.equals(Protocol.HTTP_1_1.getProtocolBytes())) { return Protocol.HTTP_1_1; } else if (protocolC.equals(Protocol.HTTP_1_0.getProtocolBytes())) { return Protocol.HTTP_1_0; } else if (protocolC.equals(Protocol.HTTP_2_0.getProtocolBytes())) { return Protocol.HTTP_2_0; } else if (protocolC.equals(Protocol.HTTP_0_9.getProtocolBytes())) { return Protocol.HTTP_0_9; } throw new IllegalStateException("Unknown protocol " + protocolC.toString()); }
public void trimLeft() { switch (getType()) { case Bytes: getByteChunk().trimLeft(); break; case Buffer: getBufferChunk().trimLeft(); break; case Chars: getCharChunk().trimLeft(); } }
public void removeHeader(final Header header) { for (int i = 0; i < count; i++) { if (headers[i].getName().equalsIgnoreCase(header.getBytes())) { removeHeader(i--); } } }
/** * check if we need to wrap the PayloadGenerator with ExpectHandler */ private PayloadGenerator wrapWithExpectHandlerIfNeeded(final PayloadGenerator payloadGenerator, final HttpRequestPacket requestPacket) { if (payloadGenerator == null) { return null; } // check if we need to wrap the PayloadGenerator with ExpectWrapper final MimeHeaders headers = requestPacket.getHeaders(); final int expectHeaderIdx = headers.indexOf(Header.Expect, 0); return expectHeaderIdx != -1 && headers.getValue(expectHeaderIdx).equalsIgnoreCase("100-Continue") ? PayloadGenFactory.wrapWithExpect(payloadGenerator) : payloadGenerator; }
@Override protected void onInitialLineEncoded(HttpHeader header, FilterChainContext ctx) { super.onInitialLineEncoded(header, ctx); if (!header.isCommitted()) { final HttpResponsePacket response = (HttpResponsePacket) header; if (response.getStatus() == Response.Status.NO_CONTENT.getStatusCode()) { response.getHeaders().setValue("Content-Length").setString("0"); response.getHeaders().setValue("Content-Type").setString(MediaType.TEXT_PLAIN); } } } }
public void updateUserPrincipal(Request grizzlyRequest) { final GlassfishSession gfSession = doGetSession(false); if (gfSession != null) { grizzlyRequest.setUserPrincipal(gfSession.getPrincipal()); grizzlyRequest.getRequest().authType().setString(gfSession.getAuthType()); } }
/** * Add a Header to the set of Headers associated with this Request. * * @param name The new header name * @param value The new header value */ @Override public void addHeader(String name, String value) { coyoteRequest.getRequest().getHeaders().addValue(name).setString(value); }
/** * Process the query string into parameters */ public void handleQueryParameters() { if (didQueryParameters) { return; } didQueryParameters = true; if (queryDC == null || queryDC.isNull()) { return; } if (LOGGER.isLoggable(Level.FINEST)) { LOGGER.log(Level.FINEST, "Decoding query {0} {1}", new Object[]{queryDC, queryStringEncoding}); } decodedQuery.duplicate(queryDC); processParameters(decodedQuery, queryStringEncoding); } // --------------------
private static int setStringAttributeValue(final AjpHttpRequest req, final String key, final Buffer buffer, int offset) { final DataChunk tmpDataChunk = req.tmpDataChunk; offset = getBytesToDataChunk(buffer, offset, tmpDataChunk); final String value = tmpDataChunk.toString(); tmpDataChunk.recycle(); req.setAttribute(key, value); return offset; }
public static SettingsFrame fromBase64Uri(final DataChunk src) { if (src.getType() == DataChunk.Type.Bytes) { final ByteChunk bc = src.getByteChunk(); return parseBase64Uri(bc.getBuffer(), bc.getStart(), bc.getEnd()); } else if (src.getType() == DataChunk.Type.Buffer) { final BufferChunk bc = src.getBufferChunk(); return parseBase64Uri(bc.getBuffer(), bc.getStart(), bc.getEnd()); } return parseBase64Uri(src.toString()); }