You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@asterixdb.apache.org by mb...@apache.org on 2023/12/27 16:45:37 UTC
(asterixdb) 04/05: [NO ISSUE][HYR][HTTP] Minor refactoring
This is an automated email from the ASF dual-hosted git repository.
mblow pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/asterixdb.git
commit 69f95307b3575a0b161c3400062c2091ed9ece29
Author: Michael Blow <mi...@couchbase.com>
AuthorDate: Fri Dec 22 00:25:19 2023 -0500
[NO ISSUE][HYR][HTTP] Minor refactoring
Change-Id: Ib1196ae6f0fec60c414fabced42f2aeb61fbd662
Reviewed-on: https://asterix-gerrit.ics.uci.edu/c/asterixdb/+/18024
Integration-Tests: Jenkins <je...@fulliautomatix.ics.uci.edu>
Tested-by: Jenkins <je...@fulliautomatix.ics.uci.edu>
Reviewed-by: Hussain Towaileb <hu...@gmail.com>
---
.../apache/hyracks/http/api/IServletRequest.java | 7 ++++++-
.../apache/hyracks/http/server/BaseRequest.java | 22 ++++++++++++----------
.../org/apache/hyracks/http/server/CLFLogger.java | 11 ++++++++---
.../hyracks/http/server/FormUrlEncodedRequest.java | 12 +++++-------
4 files changed, 31 insertions(+), 21 deletions(-)
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 a049412737..59c0ae05f2 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.List;
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 @@ public interface IServletRequest {
* @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 @@ public interface IServletRequest {
* @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 c3c7dbccf1..4a72d539b4 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 java.util.Set;
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 @@ import io.netty.handler.codec.http.QueryStringDecoder;
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 @@ public class BaseRequest implements IServletRequest {
@Override
public InetSocketAddress getRemoteAddress() {
- return remoteAddress;
+ return (InetSocketAddress) channel.remoteAddress();
}
@Override
@@ -114,6 +111,11 @@ public class BaseRequest implements IServletRequest {
@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 219995b8e3..a24ed9575b 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 @@ public class CLFLogger extends ChannelDuplexHandler {
@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 @@ public class CLFLogger extends ChannelDuplexHandler {
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 fa7ef66a12..983a1fdc45 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.http.client.utils.URLEncodedUtils;
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 @@ public class FormUrlEncodedRequest extends BaseRequest implements IServletReques
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);
}
}