private String mapTo(String uri) { for (UrlMapper urlMapper : mappers) { if (urlMapper.isMatch(uri)) { return urlMapper.to; } } return uri; }
public UrlReWriterHandler(String from, String to) { this(new UrlMapper(from, to)); }
@Override public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception { if (msg instanceof FullHttpRequest) { FullHttpRequest request = (FullHttpRequest) msg; String requestUri = request.uri(); String mapToURI = mapTo(requestUri); log.trace("Mapping from {} to {}", requestUri, mapToURI); request.setUri(mapToURI); } super.channelRead(ctx, msg); }
private void initHttpPipeline(ChannelHandlerContext ctx) { ctx.pipeline() .addLast(letsEncryptHandler) .addLast("HttpChunkedWrite", new ChunkedWriteHandler()) .addLast("HttpUrlMapper", new UrlReWriterHandler("/favicon.ico", "/static/favicon.ico")) .addLast("HttpStaticFile", new StaticFileHandler(holder.props, new StaticFile("/static"), new StaticFileEdsWith(FileUtils.CSV_DIR, ".gz"), new StaticFileEdsWith(FileUtils.CSV_DIR, ".zip"))) .addLast(resetPasswordLogic) .addLast(httpAPILogic) .addLast(noMatchHandler) .remove(this); if (log.isTraceEnabled()) { log.trace("Initialized http pipeline. {}", ctx.pipeline().names()); } }