>From Michael Blow <[email protected]>: Michael Blow has submitted this change. ( https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024 )
Change subject: [NO ISSUE][HYR][HTTP] Minor refactoring ...................................................................... [NO ISSUE][HYR][HTTP] Minor refactoring Change-Id: Ib1196ae6f0fec60c414fabced42f2aeb61fbd662 Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024 Integration-Tests: Jenkins <[email protected]> Tested-by: Jenkins <[email protected]> Reviewed-by: Hussain Towaileb <[email protected]> --- M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java M hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java 4 files changed, 44 insertions(+), 21 deletions(-) Approvals: Hussain Towaileb: Looks good to me, approved Jenkins: Verified; Verified diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java index a049412..59c0ae0 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/api/IServletRequest.java @@ -23,6 +23,7 @@ import java.util.Map; import java.util.Set; +import io.netty.channel.Channel; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.HttpScheme; @@ -78,7 +79,9 @@ * @param name header name * @return the header or null if not found */ - String getHeader(CharSequence name); + default String getHeader(CharSequence name) { + return getHttpRequest().headers().get(name); + } /** * Get a request header if found, return the default value, otherwise @@ -110,4 +113,6 @@ * @return the remote address */ InetSocketAddress getLocalAddress(); + + Channel getChannel(); } diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java index c3c7dbc..4a72d53 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/BaseRequest.java @@ -29,6 +29,7 @@ import org.apache.hyracks.http.api.IServletRequest; +import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.HttpScheme; @@ -37,26 +38,22 @@ public class BaseRequest implements IServletRequest { private static final List<String> NO_PARAM = Collections.singletonList(null); + private final Channel channel; protected final FullHttpRequest request; protected final Map<? extends CharSequence, List<String>> parameters; - protected final InetSocketAddress remoteAddress; protected final HttpScheme scheme; - protected final InetSocketAddress localAddress; public static IServletRequest create(ChannelHandlerContext ctx, FullHttpRequest request, HttpScheme scheme, boolean ignoreQueryParameters) { Map<? extends CharSequence, List<String>> param = ignoreQueryParameters ? Collections.emptyMap() : new QueryStringDecoder(request.uri()).parameters(); - InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress(); - InetSocketAddress localAddress = (InetSocketAddress) ctx.channel().localAddress(); - return new BaseRequest(request, localAddress, remoteAddress, param, scheme); + return new BaseRequest(ctx.channel(), request, param, scheme); } - protected BaseRequest(FullHttpRequest request, InetSocketAddress localAddress, InetSocketAddress remoteAddress, + protected BaseRequest(Channel channel, FullHttpRequest request, Map<? extends CharSequence, List<String>> parameters, HttpScheme scheme) { + this.channel = channel; this.request = request; - this.localAddress = localAddress; - this.remoteAddress = remoteAddress; this.parameters = parameters; this.scheme = scheme; } @@ -104,7 +101,7 @@ @Override public InetSocketAddress getRemoteAddress() { - return remoteAddress; + return (InetSocketAddress) channel.remoteAddress(); } @Override @@ -114,6 +111,11 @@ @Override public InetSocketAddress getLocalAddress() { - return localAddress; + return (InetSocketAddress) channel.localAddress(); + } + + @Override + public Channel getChannel() { + return channel; } } diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java index 219995b..a24ed95 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/CLFLogger.java @@ -120,21 +120,22 @@ @Override public void flush(ChannelHandlerContext ctx) throws Exception { if (lastChunk) { - printAndPrepare(); + printAndPrepare(ctx); lastChunk = false; } ctx.flush(); } - private void printAndPrepare() { + private void printAndPrepare(ChannelHandlerContext ctx) { if (!accessLogger.isEnabled(ACCESS_LOG_LEVEL)) { return; } logLineBuilder.append(clientIp); //identd value - not relevant here logLineBuilder.append(" - "); + logLineBuilder.append(getUserId(ctx)); //no http auth or any auth either for that matter - logLineBuilder.append(" - ["); + logLineBuilder.append(" ["); logLineBuilder.append(DATE_TIME_FORMATTER.format(requestTime)); logLineBuilder.append("] \""); logLineBuilder.append(reqLine); @@ -146,4 +147,8 @@ respSize = 0; logLineBuilder.setLength(0); } + + protected String getUserId(ChannelHandlerContext ctx) { + return "-"; + } } diff --git a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java index fa7ef66..983a1fd 100644 --- a/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java +++ b/hyracks-fullstack/hyracks/hyracks-http/src/main/java/org/apache/hyracks/http/server/FormUrlEncodedRequest.java @@ -18,7 +18,6 @@ */ package org.apache.hyracks.http.server; -import java.net.InetSocketAddress; import java.nio.charset.Charset; import java.util.ArrayList; import java.util.LinkedHashMap; @@ -29,6 +28,7 @@ import org.apache.hyracks.http.api.IServletRequest; import org.apache.hyracks.http.server.utils.HttpUtil; +import io.netty.channel.Channel; import io.netty.channel.ChannelHandlerContext; import io.netty.handler.codec.http.FullHttpRequest; import io.netty.handler.codec.http.HttpScheme; @@ -46,13 +46,11 @@ new QueryStringDecoder(request.uri()).parameters() .forEach((name, value) -> parameters.computeIfAbsent(name, a -> new ArrayList<>()).addAll(value)); } - InetSocketAddress remoteAddress = (InetSocketAddress) ctx.channel().remoteAddress(); - InetSocketAddress localAddress = (InetSocketAddress) ctx.channel().localAddress(); - return new FormUrlEncodedRequest(request, localAddress, remoteAddress, parameters, scheme); + return new FormUrlEncodedRequest(ctx.channel(), request, parameters, scheme); } - private FormUrlEncodedRequest(FullHttpRequest request, InetSocketAddress localAddress, - InetSocketAddress remoteAddress, Map<String, List<String>> parameters, HttpScheme scheme) { - super(request, localAddress, remoteAddress, parameters, scheme); + private FormUrlEncodedRequest(Channel channel, FullHttpRequest request, Map<String, List<String>> parameters, + HttpScheme scheme) { + super(channel, request, parameters, scheme); } } -- To view, visit https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024 To unsubscribe, or for help writing mail filters, visit https://asterix-gerrit.ics.uci.edu/settings Gerrit-Project: asterixdb Gerrit-Branch: trinity Gerrit-Change-Id: Ib1196ae6f0fec60c414fabced42f2aeb61fbd662 Gerrit-Change-Number: 18024 Gerrit-PatchSet: 2 Gerrit-Owner: Michael Blow <[email protected]> Gerrit-Reviewer: Hussain Towaileb <[email protected]> Gerrit-Reviewer: Jenkins <[email protected]> Gerrit-Reviewer: Michael Blow <[email protected]> Gerrit-MessageType: merged
