steveloughran commented on code in PR #7884: URL: https://github.com/apache/hadoop/pull/7884#discussion_r2284687794
########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/SimpleHttpProxyHandler.java: ########## @@ -107,7 +132,16 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { @Override protected void initChannel(SocketChannel ch) throws Exception { ChannelPipeline p = ch.pipeline(); - p.addLast(new HttpRequestEncoder(), new Forwarder(uri, client)); + p.addLast(new HttpRequestEncoder()); + if (isSecure) { + // Decode the proxy response and - if it's a redirect - rewrite the Review Comment: log here ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/SimpleHttpProxyHandler.java: ########## @@ -95,6 +99,27 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { } } + private static class SslRedirectRewriter extends ChannelInboundHandlerAdapter { + private SslRedirectRewriter() { } + + @Override + public void channelRead(final ChannelHandlerContext ctx, Object msg) { Review Comment: go on, add some vowels. ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/SimpleHttpProxyHandler.java: ########## @@ -95,6 +99,27 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { } } + private static class SslRedirectRewriter extends ChannelInboundHandlerAdapter { Review Comment: javadocs, less about what happens but * why this is needed at all -and include the jira ID. * how this fits into the process. Specifically, it's processing the response so must happen in the response phase. + make final. ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/SimpleHttpProxyHandler.java: ########## @@ -95,6 +99,27 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { } } + private static class SslRedirectRewriter extends ChannelInboundHandlerAdapter { + private SslRedirectRewriter() { } + + @Override + public void channelRead(final ChannelHandlerContext ctx, Object msg) { + if (!(msg instanceof HttpResponse)) { + ctx.fireChannelRead(msg); + return; + } + + HttpResponse resp = (HttpResponse) msg; + String location = resp.headers().get("Location"); Review Comment: use the constant in io.netty.handler.codec.http.HttpHeaderNames ########## hadoop-hdfs-project/hadoop-hdfs/src/main/java/org/apache/hadoop/hdfs/server/datanode/web/SimpleHttpProxyHandler.java: ########## @@ -95,6 +99,27 @@ public void exceptionCaught(ChannelHandlerContext ctx, Throwable cause) { } } + private static class SslRedirectRewriter extends ChannelInboundHandlerAdapter { + private SslRedirectRewriter() { } + + @Override + public void channelRead(final ChannelHandlerContext ctx, Object msg) { + if (!(msg instanceof HttpResponse)) { + ctx.fireChannelRead(msg); + return; + } + + HttpResponse resp = (HttpResponse) msg; Review Comment: again, it's OK to have longer variables -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For queries about this service, please contact Infrastructure at: us...@infra.apache.org --------------------------------------------------------------------- To unsubscribe, e-mail: common-issues-unsubscr...@hadoop.apache.org For additional commands, e-mail: common-issues-h...@hadoop.apache.org