Repository: incubator-nifi Updated Branches: refs/heads/NIFI-250 2dccb5b4d -> b8b9f2c25
NIFI-250: - Ensuring requests are not attempted to be replicated if a custom UI provides an invalid component id. Project: http://git-wip-us.apache.org/repos/asf/incubator-nifi/repo Commit: http://git-wip-us.apache.org/repos/asf/incubator-nifi/commit/b8b9f2c2 Tree: http://git-wip-us.apache.org/repos/asf/incubator-nifi/tree/b8b9f2c2 Diff: http://git-wip-us.apache.org/repos/asf/incubator-nifi/diff/b8b9f2c2 Branch: refs/heads/NIFI-250 Commit: b8b9f2c2509d8101d2f749e4ce7c58ed7a52be96 Parents: 2dccb5b Author: Matt Gilman <[email protected]> Authored: Wed Mar 25 09:57:37 2015 -0400 Committer: Matt Gilman <[email protected]> Committed: Wed Mar 25 09:57:37 2015 -0400 ---------------------------------------------------------------------- .../StandardNiFiWebConfigurationContext.java | 36 ++++++++++++++++++++ 1 file changed, 36 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/incubator-nifi/blob/b8b9f2c2/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java ---------------------------------------------------------------------- diff --git a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java index 5ef9780..8f67666 100644 --- a/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java +++ b/nifi/nifi-nar-bundles/nifi-framework-bundle/nifi-framework/nifi-web/nifi-web-api/src/main/java/org/apache/nifi/web/StandardNiFiWebConfigurationContext.java @@ -393,6 +393,12 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration if (controllerServiceLookup.getControllerService(id) != null) { controllerService = serviceFacade.getControllerService(id); } else { + // if this is a standalone instance the service should have been found above... there should + // no cluster to replicate the request to + if (!properties.isClusterManager()) { + throw new ResourceNotFoundException(String.format("Controller service[%s] could not be found on this NiFi.", id)); + } + // create the request URL URI requestUrl; try { @@ -437,6 +443,18 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration final ConfigurationSnapshot<ControllerServiceDTO> response = serviceFacade.updateControllerService(revision, controllerServiceDto); controllerService = response.getConfiguration(); } else { + // if this is a standalone instance the service should have been found above... there should + // no cluster to replicate the request to + if (!properties.isClusterManager()) { + throw new ResourceNotFoundException(String.format("Controller service[%s] could not be found on this NiFi.", id)); + } + + // since this PUT request can be interpreted as a request to create a controller service + // we need to be sure that this service exists on the node before the request is replicated. + // this is done by attempting to get the details. if the service doesn't exist it will + // throw a ResourceNotFoundException + getComponentDetails(requestContext); + // create the request URL URI requestUrl; try { @@ -509,6 +527,12 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration if (reportingTaskProvider.getReportingTaskNode(id) != null) { reportingTask = serviceFacade.getReportingTask(id); } else { + // if this is a standalone instance the task should have been found above... there should + // no cluster to replicate the request to + if (!properties.isClusterManager()) { + throw new ResourceNotFoundException(String.format("Reporting task[%s] could not be found on this NiFi.", id)); + } + // create the request URL URI requestUrl; try { @@ -553,6 +577,18 @@ public class StandardNiFiWebConfigurationContext implements NiFiWebConfiguration final ConfigurationSnapshot<ReportingTaskDTO> response = serviceFacade.updateReportingTask(revision, reportingTaskDto); reportingTask = response.getConfiguration(); } else { + // if this is a standalone instance the task should have been found above... there should + // no cluster to replicate the request to + if (!properties.isClusterManager()) { + throw new ResourceNotFoundException(String.format("Reporting task[%s] could not be found on this NiFi.", id)); + } + + // since this PUT request can be interpreted as a request to create a reporting task + // we need to be sure that this task exists on the node before the request is replicated. + // this is done by attempting to get the details. if the service doesn't exist it will + // throw a ResourceNotFoundException + getComponentDetails(requestContext); + // create the request URL URI requestUrl; try {
