@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { HttpRequest request = msg instanceof HttpRequest ? (HttpRequest) msg : null; String path = request == null ? "" : request.uri(); String redirectAddress = getRedirectAddress(ctx); log.trace("Received non-SSL request, redirecting to {}{}", redirectAddress, path); HttpResponse response = HandlerRedirectUtils.getRedirectResponse( redirectAddress, path, HttpResponseStatus.MOVED_PERMANENTLY); if (request != null) { KeepAliveWrite.flush(ctx, request, response); } else { ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE); } }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { HttpRequest request = msg instanceof HttpRequest ? (HttpRequest) msg : null; String path = request == null ? "" : request.uri(); String redirectAddress = getRedirectAddress(ctx); log.trace("Received non-SSL request, redirecting to {}{}", redirectAddress, path); HttpResponse response = HandlerRedirectUtils.getRedirectResponse( redirectAddress, path, HttpResponseStatus.MOVED_PERMANENTLY); if (request != null) { KeepAliveWrite.flush(ctx, request, response); } else { ctx.writeAndFlush(response).addListener(ChannelFutureListener.CLOSE); } }
@Override protected void decode(ChannelHandlerContext context, ByteBuf in, List<Object> out) { if (in.readableBytes() >= SSL_RECORD_HEADER_LENGTH && SslHandler.isEncrypted(in)) { handleSsl(context); } else { context.pipeline().replace(this, HTTP_CODEC_HANDLER_NAME, new HttpServerCodec()); context.pipeline().addAfter(HTTP_CODEC_HANDLER_NAME, NON_SSL_HANDLER_NAME, new NonSslHandler()); } }
@Override protected void decode(ChannelHandlerContext context, ByteBuf in, List<Object> out) { if (in.readableBytes() >= SSL_RECORD_HEADER_LENGTH && SslHandler.isEncrypted(in)) { handleSsl(context); } else { context.pipeline().replace(this, HTTP_CODEC_HANDLER_NAME, new HttpServerCodec()); context.pipeline().addAfter(HTTP_CODEC_HANDLER_NAME, NON_SSL_HANDLER_NAME, new NonSslHandler()); } }