HDFS-15380. RBF: Could not fetch real remote IP in RouterWebHdfsMethods. Contributed by tomscut.

This commit is contained in:
Ayush Saxena 2020-12-21 09:58:30 +05:30
parent bb528e3239
commit 5ab1db9e21

View File

@ -115,20 +115,18 @@ public class RouterWebHdfsMethods extends NamenodeWebHdfsMethods {
private static final Logger LOG =
LoggerFactory.getLogger(RouterWebHdfsMethods.class);
private static final ThreadLocal<String> REMOTE_ADDRESS =
new ThreadLocal<String>();
private @Context HttpServletRequest request;
private String method;
private String query;
private String reqPath;
private String remoteAddr;
public RouterWebHdfsMethods(@Context HttpServletRequest request) {
super(request);
this.method = request.getMethod();
this.query = request.getQueryString();
this.reqPath = request.getServletPath();
REMOTE_ADDRESS.set(JspHelper.getRemoteAddr(request));
this.remoteAddr = JspHelper.getRemoteAddr(request);
}
@Override
@ -139,7 +137,7 @@ protected void init(final UserGroupInformation ugi,
final Param<?, ?>... parameters) {
super.init(ugi, delegation, username, doAsUser, path, op, parameters);
REMOTE_ADDRESS.set(JspHelper.getRemoteAddr(request));
remoteAddr = JspHelper.getRemoteAddr(request);
}
@Override
@ -153,12 +151,12 @@ protected ClientProtocol getRpcClientProtocol() throws IOException {
}
private void reset() {
REMOTE_ADDRESS.set(null);
remoteAddr = null;
}
@Override
protected String getRemoteAddr() {
return REMOTE_ADDRESS.get();
return remoteAddr;
}
@Override