@Override public boolean hasNamespacePermission(final String principal, final String namespace, final NamespacePermission permission) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(namespace != null, "namespace is null"); checkArgument(permission != null, "permission is null"); return execute(client -> client.hasNamespacePermission(Tracer.traceInfo(), context.rpcCreds(), principal, namespace, permission.getId())); }
@Override public boolean hasSystemPermission(final String principal, final SystemPermission perm) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(perm != null, "perm is null"); return execute(client -> client.hasSystemPermission(Tracer.traceInfo(), context.rpcCreds(), principal, perm.getId())); }
@Override public Authorizations getUserAuthorizations(final String principal) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); return execute(client -> new Authorizations( client.getUserAuthorizations(Tracer.traceInfo(), context.rpcCreds(), principal))); }
@Override public Set<String> listLocalUsers() throws AccumuloException, AccumuloSecurityException { return execute(client -> client.listLocalUsers(Tracer.traceInfo(), context.rpcCreds())); }
@Override public boolean hasTablePermission(final String principal, final String table, final TablePermission perm) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(table != null, "table is null"); checkArgument(perm != null, "perm is null"); try { return execute(client -> client.hasTablePermission(Tracer.traceInfo(), context.rpcCreds(), principal, table, perm.getId())); } catch (AccumuloSecurityException e) { if (e.getSecurityErrorCode() == NAMESPACE_DOESNT_EXIST) throw new AccumuloSecurityException(null, SecurityErrorCode.TABLE_DOESNT_EXIST, e); else throw e; } }
@Override public boolean authenticateUser(final String principal, final AuthenticationToken token) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(token != null, "token is null"); final Credentials toAuth = new Credentials(principal, token); return execute(client -> client.authenticateUser(Tracer.traceInfo(), context.rpcCreds(), toAuth.toThrift(context.getInstanceID()))); }