diff --git a/config/alfresco/subsystems/fileServers/default/file-servers-context.xml b/config/alfresco/subsystems/fileServers/default/file-servers-context.xml
index fc9cc2b8dc..993197f1d3 100644
--- a/config/alfresco/subsystems/fileServers/default/file-servers-context.xml
+++ b/config/alfresco/subsystems/fileServers/default/file-servers-context.xml
@@ -260,6 +260,11 @@
${nfs.portMapperPort}
+
+
+ ${nfs.rpcRegisterPort}
+
+
${nfs.portMapperEnabled}
diff --git a/config/alfresco/subsystems/fileServers/default/file-servers.properties b/config/alfresco/subsystems/fileServers/default/file-servers.properties
index 2e0572a540..5b7216c03a 100644
--- a/config/alfresco/subsystems/fileServers/default/file-servers.properties
+++ b/config/alfresco/subsystems/fileServers/default/file-servers.properties
@@ -57,6 +57,10 @@ nfs.enabled=false
nfs.mountServerPort=0
nfs.nfsServerPort=2049
+# RPC registration port, 0 will allocate next available port
+# Some portmapper/rpcbind services require a privileged port to be used
+nfs.rpcRegisterPort=0
+
# To disable NFS and mount server registering with a portmapper set nfs.portMapperPort to -1
nfs.portMapperPort=111
# Enable the builtin portmapper service
diff --git a/source/java/org/alfresco/filesys/ServerConfigurationBean.java b/source/java/org/alfresco/filesys/ServerConfigurationBean.java
index 44d408ee5d..9e677eb27b 100644
--- a/source/java/org/alfresco/filesys/ServerConfigurationBean.java
+++ b/source/java/org/alfresco/filesys/ServerConfigurationBean.java
@@ -1730,6 +1730,20 @@ public class ServerConfigurationBean extends AbstractServerConfigurationBean {
}
}
+ // Check for an RPC registration port
+
+ elem = config.getConfigElement("RPCRegisterPort");
+ if ( elem != null) {
+ try {
+ nfsConfig.setRPCRegistrationPort( Integer.parseInt(elem.getValue()));
+ if ( nfsConfig.getRPCRegistrationPort() <= 0 || nfsConfig.getRPCRegistrationPort() >= 65535)
+ throw new AlfrescoRuntimeException("RPC registration port out of valid range");
+ }
+ catch (NumberFormatException ex) {
+ throw new AlfrescoRuntimeException("Invalid RPC registration port");
+ }
+ }
+
// Check if NFS debug is enabled
elem = config.getConfigElement("debug");
diff --git a/source/java/org/alfresco/filesys/config/NFSConfigBean.java b/source/java/org/alfresco/filesys/config/NFSConfigBean.java
index 16f53488cc..b63f525350 100644
--- a/source/java/org/alfresco/filesys/config/NFSConfigBean.java
+++ b/source/java/org/alfresco/filesys/config/NFSConfigBean.java
@@ -62,6 +62,9 @@ public class NFSConfigBean
/** The rpc authenticator. */
private RpcAuthenticator rpcAuthenticator;
+ /** RPC register port */
+ private Integer rpcRegisterPort;
+
/**
* Checks if is server enabled.
*
@@ -293,4 +296,23 @@ public class NFSConfigBean
this.rpcAuthenticator = rpcAuthenticator;
}
+ /**
+ * Set the RPC registration port
+ *
+ * @param rpcRegPort Integer
+ */
+ public void setRpcRegisterPort(Integer rpcRegPort)
+ {
+ this.rpcRegisterPort = rpcRegPort;
+ }
+
+ /**
+ * Return the RPC register port
+ *
+ * @return Integer
+ */
+ public Integer getRpcRegisterPort()
+ {
+ return rpcRegisterPort;
+ }
}
diff --git a/source/java/org/alfresco/filesys/config/ServerConfigurationBean.java b/source/java/org/alfresco/filesys/config/ServerConfigurationBean.java
index f11e71fa05..1e1d599230 100644
--- a/source/java/org/alfresco/filesys/config/ServerConfigurationBean.java
+++ b/source/java/org/alfresco/filesys/config/ServerConfigurationBean.java
@@ -1441,6 +1441,16 @@ public class ServerConfigurationBean extends AbstractServerConfigurationBean
throw new AlfrescoRuntimeException("NFS server port out of valid range");
}
+ // Check for an RPC registration port
+
+ Integer rpcRegisterPort = nfsConfigBean.getRpcRegisterPort();
+ if ( rpcRegisterPort != null)
+ {
+ nfsConfig.setRPCRegistrationPort( rpcRegisterPort);
+ if ( nfsConfig.getRPCRegistrationPort() < 0 || nfsConfig.getRPCRegistrationPort() >= 65535)
+ throw new AlfrescoRuntimeException("RPC registrtion port out of valid range");
+ }
+
// Check for NFS debug flags
String flags = nfsConfigBean.getDebugFlags();