Repository: hbase Updated Branches: refs/heads/0.98 5df04bc1a -> 9fd346b98
HBASE-12302 VisibilityClient getAuths does not propagate remote service exception correctly (Jerry He) Project: http://git-wip-us.apache.org/repos/asf/hbase/repo Commit: http://git-wip-us.apache.org/repos/asf/hbase/commit/9fd346b9 Tree: http://git-wip-us.apache.org/repos/asf/hbase/tree/9fd346b9 Diff: http://git-wip-us.apache.org/repos/asf/hbase/diff/9fd346b9 Branch: refs/heads/0.98 Commit: 9fd346b981c91e67df9bc6332c874d8c369c66df Parents: 5df04bc Author: Ted Yu <te...@apache.org> Authored: Tue Oct 21 20:07:58 2014 +0000 Committer: Ted Yu <te...@apache.org> Committed: Tue Oct 21 20:07:58 2014 +0000 ---------------------------------------------------------------------- .../security/visibility/VisibilityClient.java | 18 +++++++++++++++--- .../security/visibility/VisibilityController.java | 2 +- 2 files changed, 16 insertions(+), 4 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/hbase/blob/9fd346b9/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java ---------------------------------------------------------------------- diff --git a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java index 8da5f4a..44d1cf7 100644 --- a/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java +++ b/hbase-client/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityClient.java @@ -91,7 +91,11 @@ public class VisibilityClient { } } service.addLabels(controller, builder.build(), rpcCallback); - return rpcCallback.get(); + VisibilityLabelsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; } }; Map<byte[], VisibilityLabelsResponse> result = ht.coprocessorService( @@ -139,7 +143,11 @@ public class VisibilityClient { GetAuthsRequest.Builder getAuthReqBuilder = GetAuthsRequest.newBuilder(); getAuthReqBuilder.setUser(ByteStringer.wrap(Bytes.toBytes(user))); service.getAuths(controller, getAuthReqBuilder.build(), rpcCallback); - return rpcCallback.get(); + GetAuthsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; } }; Map<byte[], GetAuthsResponse> result = ht.coprocessorService(VisibilityLabelsService.class, @@ -190,7 +198,11 @@ public class VisibilityClient { } else { service.clearAuths(controller, setAuthReqBuilder.build(), rpcCallback); } - return rpcCallback.get(); + VisibilityLabelsResponse response = rpcCallback.get(); + if (controller.failedOnException()) { + throw controller.getFailedOn(); + } + return response; } }; Map<byte[], VisibilityLabelsResponse> result = ht.coprocessorService( http://git-wip-us.apache.org/repos/asf/hbase/blob/9fd346b9/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java ---------------------------------------------------------------------- diff --git a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java index 0225df5..f74179b 100644 --- a/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java +++ b/hbase-server/src/main/java/org/apache/hadoop/hbase/security/visibility/VisibilityController.java @@ -742,7 +742,7 @@ public class VisibilityController extends BaseMasterAndRegionObserver implements User requestingUser = VisibilityUtils.getActiveUser(); throw new AccessDeniedException("User '" + (requestingUser != null ? requestingUser.getShortName() : "null") - + " is not authorized to perform this action."); + + "' is not authorized to perform this action."); } labels = this.visibilityLabelService.getAuths(user, false); } catch (IOException e) {