NIFI-2768: - Ensuring we correctly enforce authorization when the destination of a connection changes. This includes source, destination, and parent process group. - Ensuring the UI reseting accordingly when a request fails.

This closes #1014.

Signed-off-by: Bryan Bende <bbende@apache.org>
This commit is contained in:
Matt Gilman 2016-09-13 11:22:03 -04:00 committed by Bryan Bende
parent 6c9291ad53
commit 5dd743947c
No known key found for this signature in database
GPG Key ID: A0DDA9ED50711C39
2 changed files with 2 additions and 2 deletions

View File

@ -223,7 +223,7 @@ public class ConnectionResource extends ApplicationResource {
// if a destination has been specified and is different // if a destination has been specified and is different
final Connectable currentDestination = connAuth.getDestination(); final Connectable currentDestination = connAuth.getDestination();
if (requestConnection.getDestination() != null && currentDestination.getIdentifier().equals(requestConnection.getDestination().getId())) { if (requestConnection.getDestination() != null && !currentDestination.getIdentifier().equals(requestConnection.getDestination().getId())) {
// verify access of the new destination (current destination was already authorized as part of the connection check) // verify access of the new destination (current destination was already authorized as part of the connection check)
final Authorizable newDestinationAuthorizable = lookup.getConnectable(requestConnection.getDestination().getId()); final Authorizable newDestinationAuthorizable = lookup.getConnectable(requestConnection.getDestination().getId());
newDestinationAuthorizable.authorize(authorizer, RequestAction.WRITE, NiFiUserUtils.getNiFiUser()); newDestinationAuthorizable.authorize(authorizer, RequestAction.WRITE, NiFiUserUtils.getNiFiUser());

View File

@ -1386,7 +1386,7 @@ nf.Connection = (function () {
nf.CanvasUtils.reloadConnectionSourceAndDestination(null, previousDestinationId); nf.CanvasUtils.reloadConnectionSourceAndDestination(null, previousDestinationId);
nf.CanvasUtils.reloadConnectionSourceAndDestination(response.sourceId, response.destinationId); nf.CanvasUtils.reloadConnectionSourceAndDestination(response.sourceId, response.destinationId);
}).fail(function (xhr, status, error) { }).fail(function (xhr, status, error) {
if (xhr.status === 400 || xhr.status === 404 || xhr.status === 409) { if (xhr.status === 400 || xhr.status === 401 || xhr.status === 403 || xhr.status === 404 || xhr.status === 409) {
nf.Dialog.showOkDialog({ nf.Dialog.showOkDialog({
headerText: 'Connection', headerText: 'Connection',
dialogContent: nf.Common.escapeHtml(xhr.responseText) dialogContent: nf.Common.escapeHtml(xhr.responseText)