@Override public String toString() { return getName(); }
@Override public int hashCode() { return getName().hashCode(); }
/** * Sets the HTTP method header. */ public static void setMethod(int spdyVersion, SpdyHeadersFrame frame, HttpMethod method) { frame.headers().set(HttpNames.METHOD, method.getName()); }
private FullResponseHolder submitRequest(Request request) throws IOException, ChannelException { try { log.debug("HTTP %s: %s", request.getMethod().getName(), request.getUrl().toString()); return httpClient.go(request, new FullResponseHandler(StandardCharsets.UTF_8), httpTimeout).get(); } catch (Exception e) { throw throwIfPossible(e); } }
char firstChar = method.getName().charAt(0); switch (firstChar) { case 'H':
@Override public String method() { return httpRequest.getMethod().getName(); }
private void validateWebSocketRequest(Request request, Uri uri, AsyncHandler<?> asyncHandler) { if (asyncHandler instanceof WebSocketUpgradeHandler) { if (!uri.getScheme().startsWith(WEBSOCKET)) throw new IllegalArgumentException("WebSocketUpgradeHandler but scheme isn't ws or wss: " + uri.getScheme()); else if (!request.getMethod().equals(HttpMethod.GET.getName())) throw new IllegalArgumentException("WebSocketUpgradeHandler but method isn't GET: " + request.getMethod()); } else if (uri.getScheme().startsWith(WEBSOCKET)) { throw new IllegalArgumentException("No WebSocketUpgradeHandler but scheme is " + uri.getScheme()); } }
@Override protected Object decode(ChannelHandlerContext ctx, Channel channel, Object msg) throws Exception { if (!(msg instanceof org.jboss.netty.handler.codec.http.HttpRequest)) { return msg; } org.jboss.netty.handler.codec.http.HttpRequest request = (org.jboss.netty.handler.codec.http.HttpRequest) msg; boolean keepAlive = org.jboss.netty.handler.codec.http.HttpHeaders.isKeepAlive(request) & isKeepAlive; NettyHttpResponse response = new NettyHttpResponse(channel, keepAlive, request.getMethod()); ResteasyHttpHeaders headers = null; ResteasyUriInfo uriInfo = null; try { headers = NettyUtil.extractHttpHeaders(request); uriInfo = NettyUtil.extractUriInfo(request, servletMappingPrefix, proto); HttpRequest nettyRequest = new NettyHttpRequest(headers, uriInfo, request.getMethod().getName(), dispatcher, response, org.jboss.netty.handler.codec.http.HttpHeaders.is100ContinueExpected(request) ); ChannelBufferInputStream is = new ChannelBufferInputStream(request.getContent()); nettyRequest.setInputStream(is); return nettyRequest; } catch (Exception e) { response.sendError(400); // made it warn so that people can filter this. LogMessages.LOGGER.warn(Messages.MESSAGES.failedToParseRequest(), e); return null; } }
@Override public String getMethod() { return request.getMethod().getName(); }
private boolean validateWebSocketRequest(Request request, AsyncHandler<?> asyncHandler) { return request.getMethod().equals(HttpMethod.GET.getName()) && asyncHandler instanceof WebSocketUpgradeHandler; }
@Override public String method() { return httpRequest.getMethod().getName(); }
private void setAllowMethods(final HttpResponse response) { response.headers().set(ACCESS_CONTROL_ALLOW_METHODS, config.allowedRequestMethods().stream() .map(m -> m.getName().trim()) .collect(Collectors.toList())); }
@Override public void inputShutdown(ChannelHandlerContext ctx, ShutdownInputEvent e) { HttpChildChannel httpChannel = (HttpChildChannel) ctx.getChannel(); HttpChannelConfig httpConfig = httpChannel.getConfig(); HttpMethod httpMethod = httpConfig.getMethod(); if (HttpMethod.DELETE.getName().equalsIgnoreCase(httpMethod.getName())) { shutdownOutput(httpChannel); } }
private void validateWebSocketRequest(Request request, Uri uri, AsyncHandler<?> asyncHandler) { if (asyncHandler instanceof WebSocketUpgradeHandler) { if (!uri.getScheme().startsWith(WS)) throw new IllegalArgumentException("WebSocketUpgradeHandler but scheme isn't ws or wss: " + uri.getScheme()); else if (!request.getMethod().equals(HttpMethod.GET.getName())) throw new IllegalArgumentException("WebSocketUpgradeHandler but method isn't GET: " + request.getMethod()); } else if (uri.getScheme().startsWith(WS)) { throw new IllegalArgumentException("No WebSocketUpgradeHandler but scheme is " + uri.getScheme()); } }
private void validateWebSocketRequest(Request request, AsyncHandler<?> asyncHandler) { Uri uri = request.getUri(); boolean isWs = uri.isWebSocket(); if (asyncHandler instanceof WebSocketUpgradeHandler) { if (!isWs) throw new IllegalArgumentException("WebSocketUpgradeHandler but scheme isn't ws or wss: " + uri.getScheme()); else if (!request.getMethod().equals(HttpMethod.GET.getName())) throw new IllegalArgumentException("WebSocketUpgradeHandler but method isn't GET: " + request.getMethod()); } else if (isWs) { throw new IllegalArgumentException("No WebSocketUpgradeHandler but scheme is " + uri.getScheme()); } }
@Override public boolean decode(Channel channel) throws Exception { HttpChannelConfig httpConfig = (HttpChannelConfig) channel.getConfig(); HttpMethod method = httpConfig.getMethod(); String methodName = method.getName(); ChannelBuffer buffer = copiedBuffer(methodName, UTF_8); methodDecoder.decodeLast(buffer); return true; }
@Override public void channelClosed(ChannelHandlerContext ctx, ChannelStateEvent e) throws Exception { HttpChildChannel httpChannel = (HttpChildChannel) ctx.getChannel(); HttpChannelConfig httpConfig = httpChannel.getConfig(); HttpMethod httpMethod = httpConfig.getMethod(); bboshChannelSink.detach(httpChannel); if (HttpMethod.DELETE.getName().equalsIgnoreCase(httpMethod.getName())) { if (bboshChannel.setClosed()) { fireChannelDisconnected(bboshChannel); fireChannelUnbound(bboshChannel); fireChannelClosed(bboshChannel); } } else { // TODO: start timer for reconnect (close BBoshChannel on timeout, triggers cleanup of child channel handler) } }
@Override public void messageReceived(ChannelHandlerContext context, MessageEvent e) throws Exception { HttpRequest request = (HttpRequest)e.getMessage(); String base = getBaseUri(request); final URI baseUri = new URI(base); final URI requestUri = new URI(base.substring(0, base.length() - 1) + request.getUri()); final ContainerRequest cRequest = new ContainerRequest( application, request.getMethod().getName(), baseUri, requestUri, getHeaders(request), new ChannelBufferInputStream(request.getContent()) ); application.handleRequest(cRequest, new Writer(e.getChannel())); }