@Override public void revokeNamespacePermission(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"); executeVoid(client -> client.revokeNamespacePermission(Tracer.traceInfo(), context.rpcCreds(), principal, namespace, permission.getId())); }
@Override public void grantNamespacePermission(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"); executeVoid(client -> client.grantNamespacePermission(Tracer.traceInfo(), context.rpcCreds(), principal, namespace, permission.getId())); }
@Override public void dropLocalUser(final String principal) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); executeVoid(client -> client.dropLocalUser(Tracer.traceInfo(), context.rpcCreds(), principal)); }
@Override public void revokeSystemPermission(final String principal, final SystemPermission permission) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(permission != null, "permission is null"); executeVoid(client -> client.revokeSystemPermission(Tracer.traceInfo(), context.rpcCreds(), principal, permission.getId())); }
@Override public void grantSystemPermission(final String principal, final SystemPermission permission) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(permission != null, "permission is null"); executeVoid(client -> client.grantSystemPermission(Tracer.traceInfo(), context.rpcCreds(), principal, permission.getId())); }
@Override public void changeUserAuthorizations(final String principal, final Authorizations authorizations) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(authorizations != null, "authorizations is null"); executeVoid(client -> client.changeAuthorizations(Tracer.traceInfo(), context.rpcCreds(), principal, ByteBufferUtil.toByteBuffers(authorizations.getAuthorizations()))); }
@Override public void changeLocalUserPassword(final String principal, final PasswordToken token) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(token != null, "token is null"); final Credentials toChange = new Credentials(principal, token); executeVoid(client -> client.changeLocalUserPassword(Tracer.traceInfo(), context.rpcCreds(), principal, ByteBuffer.wrap(token.getPassword()))); if (context.getCredentials().getPrincipal().equals(principal)) { context.setCredentials(toChange); } }
@Override public void grantTablePermission(final String principal, final String table, final TablePermission permission) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(table != null, "table is null"); checkArgument(permission != null, "permission is null"); try { executeVoid(client -> client.grantTablePermission(Tracer.traceInfo(), context.rpcCreds(), principal, table, permission.getId())); } catch (AccumuloSecurityException e) { if (e.getSecurityErrorCode() == NAMESPACE_DOESNT_EXIST) throw new AccumuloSecurityException(null, SecurityErrorCode.TABLE_DOESNT_EXIST, e); else throw e; } }
@Override public void revokeTablePermission(final String principal, final String table, final TablePermission permission) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); checkArgument(table != null, "table is null"); checkArgument(permission != null, "permission is null"); try { executeVoid(client -> client.revokeTablePermission(Tracer.traceInfo(), context.rpcCreds(), principal, table, permission.getId())); } catch (AccumuloSecurityException e) { if (e.getSecurityErrorCode() == NAMESPACE_DOESNT_EXIST) throw new AccumuloSecurityException(null, SecurityErrorCode.TABLE_DOESNT_EXIST, e); else throw e; } }
@Override public void createLocalUser(final String principal, final PasswordToken password) throws AccumuloException, AccumuloSecurityException { checkArgument(principal != null, "principal is null"); if (context.getSaslParams() == null) { checkArgument(password != null, "password is null"); } executeVoid(client -> { if (context.getSaslParams() == null) { client.createLocalUser(Tracer.traceInfo(), context.rpcCreds(), principal, ByteBuffer.wrap(password.getPassword())); } else { client.createLocalUser(Tracer.traceInfo(), context.rpcCreds(), principal, ByteBuffer.wrap(new byte[0])); } }); }