response.sendError(HttpStatus.NOT_FOUND_404.getStatusCode()); return; if (resourcesContextPath != null && !resourcesContextPath.isEmpty()) { if (!uri.startsWith(resourcesContextPath)) { response.sendError(HttpStatus.NOT_FOUND_404.getStatusCode()); return; response.sendError(HttpStatus.NOT_FOUND_404.getStatusCode()); } else { response.setStatus(HttpStatus.OK_200);
private static boolean isRedirect(final int status) { return HttpStatus.MOVED_PERMANENTLY_301.statusMatches(status) || HttpStatus.FOUND_302.statusMatches(status) || HttpStatus.SEE_OTHER_303.statusMatches(status) || HttpStatus.TEMPORARY_REDIRECT_307.statusMatches(status) || HttpStatus.PERMANENT_REDIRECT_308.statusMatches(status); }
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException { InetSocketAddress localAddress = (InetSocketAddress) ctx.getConnection().getLocalAddress(); DefaultServerAddress serverAddress = new DefaultServerAddress(localAddress.getAddress().getHostAddress(), localAddress.getPort()); final HttpResponsePacket.Builder responsePacketBuilder = HttpResponsePacket.builder(request); responsePacketBuilder.status(SERVICE_UNAVAILABLE_503.getStatusCode()); responsePacketBuilder.reasonPhrase(SERVICE_UNAVAILABLE_503.getReasonPhrase()); ctx.write(responsePacketBuilder.build()); return ctx.getStopAction(); final HttpResponsePacket.Builder responsePacketBuilder = HttpResponsePacket.builder(request); if (CONTINUE.equalsIgnoreCase(request.getHeader(EXPECT))) { responsePacketBuilder.status(CONINTUE_100.getStatusCode()); responsePacketBuilder.reasonPhrase(CONINTUE_100.getReasonPhrase()); HttpResponsePacket packet = responsePacketBuilder.build(); packet.setAcknowledgement(true); ctx.write(packet); return ctx.getStopAction(); } else { responsePacketBuilder.status(EXPECTATION_FAILED_417.getStatusCode()); responsePacketBuilder.reasonPhrase(EXPECTATION_FAILED_417.getReasonPhrase()); ctx.write(responsePacketBuilder.build()); return ctx.getStopAction();
@Override public NextAction handleRead(final FilterChainContext ctx) throws IOException final String scheme = (ctx.getAttributes().getAttribute(HTTPS.getScheme()) == null) ? HTTP.getScheme() : HTTPS.getScheme(); final String ip = ((InetSocketAddress) ctx.getConnection().getLocalAddress()).getAddress().getHostAddress(); final int port = ((InetSocketAddress) ctx.getConnection().getLocalAddress()).getPort(); final HttpContent httpContent = ctx.getMessage(); final HttpRequestPacket request = (HttpRequestPacket) httpContent.getHttpHeader(); if (ctx.getConnection().getAttributes().getAttribute(EXECUTOR_REJECTED_ATTRIBUTE) != null) final HttpResponsePacket.Builder responsePacketBuilder = HttpResponsePacket.builder(request); responsePacketBuilder.status(SERVICE_UNAVAILABLE_503.getStatusCode()); HttpResponsePacket packet = responsePacketBuilder.build(); packet.setContentLength(0); ctx.write(packet); final HttpResponsePacket.Builder responsePacketBuilder = HttpResponsePacket.builder(request); if (CONTINUE.equalsIgnoreCase(request.getHeader(EXPECT))) responsePacketBuilder.status(CONINTUE_100.getStatusCode()); HttpResponsePacket packet = responsePacketBuilder.build(); packet.setAcknowledgement(true); responsePacketBuilder.status(EXPECTATION_FAILED_417.getStatusCode()); ctx.write(responsePacketBuilder.build()); return ctx.getStopAction();
@Override Buffer encodeInitialLine(HttpPacket httpPacket, Buffer output, MemoryManager memoryManager) { final HttpResponsePacket httpResponse = (HttpResponsePacket) httpPacket; output = put(memoryManager, output, httpResponse.getProtocol().getProtocolBytes()); output = put(memoryManager, output, Constants.SP); output = put(memoryManager, output, httpResponse.getHttpStatus().getStatusBytes()); output = put(memoryManager, output, Constants.SP); if (httpResponse.isCustomReasonPhraseSet()) { final DataChunk customReasonPhrase = httpResponse.isHtmlEncodingCustomReasonPhrase() ? HttpUtils.filter(httpResponse.getReasonPhraseDC()) : HttpUtils.filterNonPrintableCharacters(httpResponse.getReasonPhraseDC()); output = put(memoryManager, output, httpResponse.getTempHeaderEncodingBuffer(), customReasonPhrase); } else { output = put(memoryManager, output, httpResponse.getHttpStatus().getReasonPhraseBytes()); } return output; }
@SuppressWarnings("unchecked") static Buffer encodeResponseHeaders(final Http2Session http2Session, final HttpResponsePacket response, final Map<String,String> capture) throws IOException { assert http2Session.getDeflaterLock().isLocked(); final MimeHeaders headers = response.getHeaders(); headers.removeHeader(Header.Connection); headers.removeHeader(Header.KeepAlive); headers.removeHeader(Header.ProxyConnection); headers.removeHeader(Header.TransferEncoding); headers.removeHeader(Header.Upgrade); final HeadersEncoder encoder = http2Session.getHeadersEncoder(); // encoder.encodeHeader(Constants.STATUS_HEADER_BYTES, // response.getHttpStatus().getStatusBytes(), false); encoder.encodeHeader(STATUS_HEADER, String.valueOf(response.getHttpStatus().getStatusCode()), capture); encodeUserHeaders(headers, encoder, capture); return encoder.flushHeaders(); }
protected boolean onHttpPacketParsed(final HttpHeader httpHeader, final FilterChainContext ctx) { final Connection connection = ctx.getConnection(); if (context.establishingTunnel && HttpStatus.OK_200.statusMatches( ((HttpResponsePacket) httpHeader).getStatus())) { context.establishingTunnel = false; context.tunnelEstablished(connection);
@Override public void run() { final SuspendStatus suspendStatus = response.initSuspendStatus(); } catch (Throwable e) { LOGGER.log(Level.FINE, "service exception", e); if (!response.isCommitted()) { response.reset(); try { HtmlHelper.setErrorAndSendErrorPage( request, response, response.getErrorPageGenerator(), 500, HttpStatus.INTERNAL_SERVER_ERROR_500.getReasonPhrase(), HttpStatus.INTERNAL_SERVER_ERROR_500.getReasonPhrase(), e); } catch (IOException ignored) { ctx.resume();
private void sendBadRequestResponse(final FilterChainContext ctx, final HttpResponsePacket response) { if (response.getHttpStatus().getStatusCode() < 400) { // 400 - Bad request HttpStatus.BAD_REQUEST_400.setValues(response); } commitAndCloseAsError(ctx, response); }
/** * Set the HTTP response status code (e.g. "200" or "200 OK") * * @param status the status of this header. */ public final CompressedHeadersBuilder status(HttpStatus status) { final StringBuilder sb = new StringBuilder(); sb.append(status.getStatusCode()).append(' ') .append(new String(status.getReasonPhraseBytes(), org.glassfish.grizzly.http.util.Constants.DEFAULT_HTTP_CHARSET)); return status(sb.toString()); }
/** * Gets the status reason phrase for this response as {@link DataChunk} * (avoid creation of a String object}. This implementation takes into * consideration the {@link #isAllowCustomReasonPhrase()} property - if the * custom reason phrase is allowed and it's value is not null - then the * returned result will be equal to {@link #getReasonPhraseRawDC()}, otherwise * if custom reason phrase is disallowed or its value is null - the default * reason phrase for the HTTP response {@link #getStatus()} will be returned. * * @return the status reason phrase for this response as {@link DataChunk} * (avoid creation of a String object}. */ public final DataChunk getReasonPhraseDC() { if (isCustomReasonPhraseSet()) { return reasonPhraseC; } else { reasonPhraseC.setBytes(httpStatus.getReasonPhraseBytes()); return reasonPhraseC; } }
@Override public void service(Request rqst, Response rspns) throws Exception { rspns.setStatus(HttpStatus.NOT_FOUND_404.getStatusCode(), "Not found"); rspns.getWriter().write("404: not found"); } });
/** * Set the HTTP status and message to be returned with this response. * @param status {@link HttpStatus} to set */ public void setStatus(HttpStatus status) { checkResponse(); if (isCommitted()) return; status.setValues(response); }
final HttpTransactionContext context = HttpTransactionContext.currentTransaction(httpHeader); final int status = responsePacket.getStatus(); if (context.establishingTunnel && HttpStatus.OK_200.statusMatches(status)) { return; if (HttpStatus.CONINTUE_100.statusMatches(status)) { ctx.notifyUpstream(new ContinueEvent(context)); return;
@SuppressWarnings("static-method") private void doFailure(RequestContext rc, HttpStatus code, String message) { SvcLogicContext svcLogic = rc.getSvcLogicContext(); String msg = (message == null) ? code.getReasonPhrase() : message; if (msg.contains("\n")) { msg = msg.substring(msg.indexOf("\n")); } String status; try { status = Integer.toString(code.getStatusCode()); } catch (Exception e) { status = "500"; } svcLogic.setStatus(OUTCOME_FAILURE); svcLogic.setAttribute("healthcheck.result.code", "200"); svcLogic.setAttribute("healthcheck.result.message", status+" "+msg); } /**
/** * {@inheritDoc} */ @Override public String generate(final Request request, final int status, final String reasonPhrase, final String description, final Throwable exception) { if (status == 404) { return HtmlHelper.getErrorPage(HttpStatus.NOT_FOUND_404.getReasonPhrase(), "Resource identified by path '" + HttpUtils.filter(request.getRequestURI()) + "', does not exist.", request.getServerFilter().getFullServerName()); } return HtmlHelper.getExceptionErrorPage(reasonPhrase, description, request.getServerFilter().getFullServerName(), exception); } }
/** * Sets the status code for this response. * * @param status the status code for this response. */ public void setStatus(final int status) { // the order is important here as statusDC.setXXX will reset the parsedIntStatus httpStatus = HttpStatus.getHttpStatus(status); }
AhcEventFilter(final GrizzlyAsyncHttpProvider provider, final int maxHerdersSizeProperty) { super(maxHerdersSizeProperty); this.provider = provider; HANDLER_MAP.put(HttpStatus.UNAUTHORIZED_401.getStatusCode(), AuthorizationHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.PROXY_AUTHENTICATION_REQUIRED_407.getStatusCode(), ProxyAuthorizationHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.MOVED_PERMANENTLY_301.getStatusCode(), RedirectHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.FOUND_302.getStatusCode(), RedirectHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.SEE_OTHER_303.getStatusCode(), RedirectHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.TEMPORARY_REDIRECT_307.getStatusCode(), RedirectHandler.INSTANCE); HANDLER_MAP.put(HttpStatus.PERMANENT_REDIRECT_308.getStatusCode(), RedirectHandler.INSTANCE); }
private static HttpStatus register(final int statusCode, final String reasonPhrase) { final HttpStatus httpStatus = newHttpStatus(statusCode, reasonPhrase); statusMessages.put(statusCode, httpStatus); return httpStatus; }
/** * @param statusCode HTTP status code * * @return {@link HttpStatus} representation of the status. */ public static HttpStatus getHttpStatus(final int statusCode) { HttpStatus status = statusMessages.get(statusCode); if (status == null) { status = new HttpStatus(statusCode, "CUSTOM"); } return status; }