package org.yamcs.web; import org.yamcs.web.rest.Router; import io.netty.channel.ChannelInitializer; import io.netty.channel.ChannelPipeline; import io.netty.channel.socket.SocketChannel; import io.netty.handler.codec.http.HttpServerCodec; import io.netty.handler.codec.http.cors.CorsConfig; import io.netty.handler.codec.http.cors.CorsHandler; public class HttpServerChannelInitializer extends ChannelInitializer<SocketChannel> { private Router apiRouter; private CorsConfig corsConfig; public HttpServerChannelInitializer(Router apiRouter) { this.apiRouter = apiRouter; corsConfig = WebConfig.getInstance().getCorsConfig(); } @Override public void initChannel(SocketChannel ch) { ChannelPipeline pipeline = ch.pipeline(); pipeline.addLast(new HttpServerCodec()); if (corsConfig != null) { pipeline.addLast(new CorsHandler(corsConfig)); } //this has to be the last handler in the pipeline pipeline.addLast(new HttpRequestHandler(apiRouter)); } }