use of org.apache.flink.shaded.netty4.io.netty.handler.codec.http.FullHttpResponse in project ballerina by ballerina-lang.
the class VMDebugServerHandler method handleHttpRequest.
private void handleHttpRequest(ChannelHandlerContext ctx, FullHttpRequest req) {
// Handle a bad request.
if (!req.decoderResult().isSuccess()) {
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, BAD_REQUEST));
return;
}
// Allow only GET methods.
if (req.method() != GET) {
sendHttpResponse(ctx, req, new DefaultFullHttpResponse(HTTP_1_1, FORBIDDEN));
return;
}
if (!DebugConstants.DEBUG_WEBSOCKET_PATH.equals(req.uri())) {
FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, NOT_FOUND);
sendHttpResponse(ctx, req, res);
return;
}
// Handshake
WebSocketServerHandshakerFactory wsFactory = new WebSocketServerHandshakerFactory(getWebSocketLocation(req), null, true);
handshaker = wsFactory.newHandshaker(req);
if (handshaker == null) {
WebSocketServerHandshakerFactory.sendUnsupportedVersionResponse(ctx.channel());
} else {
try {
debugManager.addDebugSession(ctx.channel());
} catch (DebugException e) {
FullHttpResponse res = new DefaultFullHttpResponse(HTTP_1_1, TOO_MANY_REQUESTS);
sendHttpResponse(ctx, req, res);
return;
}
handshaker.handshake(ctx.channel(), req);
}
}
use of org.apache.flink.shaded.netty4.io.netty.handler.codec.http.FullHttpResponse in project modules-extra by CubeEngine.
the class HttpRequestHandler method error.
private void error(ChannelHandlerContext context, RequestStatus error, ApiRequestException e) {
Map<String, Object> data = new HashMap<>();
data.put("id", error.getCode());
data.put("desc", error.getDescription());
if (e != null) {
Map<String, Object> reason = new HashMap<>();
reason.put("id", e.getCode());
reason.put("desc", e.getMessage());
data.put("reason", reason);
}
FullHttpResponse response = new DefaultFullHttpResponse(HTTP_1_1, error.getRepsonseStatus(), Unpooled.copiedBuffer(this.serialize(data), this.UTF8));
response.headers().set(CONTENT_TYPE, MimeType.JSON.toString());
context.writeAndFlush(response).addListener(CLOSE).addListener(CLOSE_ON_FAILURE);
}
use of org.apache.flink.shaded.netty4.io.netty.handler.codec.http.FullHttpResponse in project LogHub by fbacchella.
the class RootRedirect method processRequest.
@Override
protected boolean processRequest(FullHttpRequest request, ChannelHandlerContext ctx) throws HttpRequestFailure {
FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.MOVED_PERMANENTLY);
boolean keepAlive = addKeepAlive(request, response, 0);
response.headers().set(HttpHeaderNames.LOCATION, "/static/index.html");
ChannelFuture redirectfutur = ctx.writeAndFlush(response);
addLogger(redirectfutur, request.method().name(), request.uri(), response.status().code(), "redirect");
return keepAlive;
}
use of org.apache.flink.shaded.netty4.io.netty.handler.codec.http.FullHttpResponse in project component-runtime by Talend.
the class Handlers method sendError.
static void sendError(final ChannelHandlerContext ctx, final HttpResponseStatus status) {
final FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, status, Unpooled.copiedBuffer("Failure: " + status.toString() + "\r\n", CharsetUtil.UTF_8));
response.headers().set(HttpHeaderNames.CONTENT_TYPE, "text/plain; charset=UTF-8");
response.headers().set("X-Talend-Proxy-JUnit", "default-response");
ctx.writeAndFlush(response);
}
use of org.apache.flink.shaded.netty4.io.netty.handler.codec.http.FullHttpResponse in project component-runtime by Talend.
the class PassthroughHandler method channelRead0.
@Override
protected void channelRead0(final ChannelHandlerContext ctx, final FullHttpRequest request) {
if (HttpMethod.CONNECT.name().equalsIgnoreCase(request.method().name())) {
final FullHttpResponse response = new DefaultFullHttpResponse(HttpVersion.HTTP_1_1, HttpResponseStatus.OK, Unpooled.EMPTY_BUFFER);
setKeepAlive(response, true);
setContentLength(response, 0);
if (api.getSslContext() != null) {
final SSLEngine sslEngine = api.getSslContext().createSSLEngine();
sslEngine.setUseClientMode(false);
ctx.channel().pipeline().addFirst("ssl", new SslHandler(sslEngine, true));
final String uri = request.uri();
final String[] parts = uri.split(":");
ctx.channel().attr(BASE).set("https://" + parts[0] + (parts.length > 1 && !"443".equals(parts[1]) ? ":" + parts[1] : ""));
}
ctx.writeAndFlush(response);
return;
}
// copy to use in a separated thread
final FullHttpRequest req = request.copy();
api.getExecutor().execute(() -> doHttpRequest(req, ctx));
}
Aggregations