[NO ISSUE][HYR][HTTP] Minor refactoring
Change-Id: Ib1196ae6f0fec60c414fabced42f2aeb61fbd662
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024
Integration-Tests: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <jenkins@fulliautomatix.ics.uci.edu>
Reviewed-by: Hussain Towaileb <hussainht@gmail.com>
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);
}
}