HDFS-6455. NFS: Exception should be added in NFS log for invalid separator in nfs.exports.allowed.hosts. Contributed by Abhiraj Butala
git-svn-id: https://svn.apache.org/repos/asf/hadoop/common/trunk@1612947 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
a6b1d2a85c
commit
2a5f1029a5
@ -53,7 +53,12 @@ public static synchronized NfsExports getInstance(Configuration conf) {
|
|||||||
long expirationPeriodNano = conf.getLong(
|
long expirationPeriodNano = conf.getLong(
|
||||||
Nfs3Constant.NFS_EXPORTS_CACHE_EXPIRYTIME_MILLIS_KEY,
|
Nfs3Constant.NFS_EXPORTS_CACHE_EXPIRYTIME_MILLIS_KEY,
|
||||||
Nfs3Constant.NFS_EXPORTS_CACHE_EXPIRYTIME_MILLIS_DEFAULT) * 1000 * 1000;
|
Nfs3Constant.NFS_EXPORTS_CACHE_EXPIRYTIME_MILLIS_DEFAULT) * 1000 * 1000;
|
||||||
exports = new NfsExports(cacheSize, expirationPeriodNano, matchHosts);
|
try {
|
||||||
|
exports = new NfsExports(cacheSize, expirationPeriodNano, matchHosts);
|
||||||
|
} catch (IllegalArgumentException e) {
|
||||||
|
LOG.error("Invalid NFS Exports provided: ", e);
|
||||||
|
return exports;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
return exports;
|
return exports;
|
||||||
}
|
}
|
||||||
|
@ -104,6 +104,10 @@ public XDR nullOp(XDR out, int xid, InetAddress client) {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public XDR mnt(XDR xdr, XDR out, int xid, InetAddress client) {
|
public XDR mnt(XDR xdr, XDR out, int xid, InetAddress client) {
|
||||||
|
if (hostsMatcher == null) {
|
||||||
|
return MountResponse.writeMNTResponse(Nfs3Status.NFS3ERR_ACCES, out, xid,
|
||||||
|
null);
|
||||||
|
}
|
||||||
AccessPrivilege accessPrivilege = hostsMatcher.getAccessPrivilege(client);
|
AccessPrivilege accessPrivilege = hostsMatcher.getAccessPrivilege(client);
|
||||||
if (accessPrivilege == AccessPrivilege.NONE) {
|
if (accessPrivilege == AccessPrivilege.NONE) {
|
||||||
return MountResponse.writeMNTResponse(Nfs3Status.NFS3ERR_ACCES, out, xid,
|
return MountResponse.writeMNTResponse(Nfs3Status.NFS3ERR_ACCES, out, xid,
|
||||||
@ -210,8 +214,15 @@ public void handleInternal(ChannelHandlerContext ctx, RpcInfo info) {
|
|||||||
} else if (mntproc == MNTPROC.EXPORT) {
|
} else if (mntproc == MNTPROC.EXPORT) {
|
||||||
// Currently only support one NFS export
|
// Currently only support one NFS export
|
||||||
List<NfsExports> hostsMatchers = new ArrayList<NfsExports>();
|
List<NfsExports> hostsMatchers = new ArrayList<NfsExports>();
|
||||||
hostsMatchers.add(hostsMatcher);
|
if (hostsMatcher != null) {
|
||||||
out = MountResponse.writeExportList(out, xid, exports, hostsMatchers);
|
hostsMatchers.add(hostsMatcher);
|
||||||
|
out = MountResponse.writeExportList(out, xid, exports, hostsMatchers);
|
||||||
|
} else {
|
||||||
|
// This means there are no valid exports provided.
|
||||||
|
RpcAcceptedReply.getInstance(xid,
|
||||||
|
RpcAcceptedReply.AcceptState.PROC_UNAVAIL, new VerifierNone()).write(
|
||||||
|
out);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// Invalid procedure
|
// Invalid procedure
|
||||||
RpcAcceptedReply.getInstance(xid,
|
RpcAcceptedReply.getInstance(xid,
|
||||||
|
@ -2125,6 +2125,9 @@ private boolean checkAccessPrivilege(SocketAddress remoteAddress,
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Check export table
|
// Check export table
|
||||||
|
if (exports == null) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
InetAddress client = ((InetSocketAddress) remoteAddress).getAddress();
|
InetAddress client = ((InetSocketAddress) remoteAddress).getAddress();
|
||||||
AccessPrivilege access = exports.getAccessPrivilege(client);
|
AccessPrivilege access = exports.getAccessPrivilege(client);
|
||||||
if (access == AccessPrivilege.NONE) {
|
if (access == AccessPrivilege.NONE) {
|
||||||
|
@ -361,6 +361,9 @@ Release 2.6.0 - UNRELEASED
|
|||||||
continuously leading to huge size of dncp_block_verification.log.curr
|
continuously leading to huge size of dncp_block_verification.log.curr
|
||||||
(vinayakumarb via cmccabe)
|
(vinayakumarb via cmccabe)
|
||||||
|
|
||||||
|
HDFS-6455. NFS: Exception should be added in NFS log for invalid separator in
|
||||||
|
nfs.exports.allowed.hosts. (Abhiraj Butala via brandonli)
|
||||||
|
|
||||||
Release 2.5.0 - UNRELEASED
|
Release 2.5.0 - UNRELEASED
|
||||||
|
|
||||||
INCOMPATIBLE CHANGES
|
INCOMPATIBLE CHANGES
|
||||||
|
Loading…
Reference in New Issue
Block a user