org.apache.accumulo.core.client.admin
Class SecurityOperations

java.lang.Object
  extended by org.apache.accumulo.core.client.admin.SecurityOperations
Direct Known Subclasses:
MockSecurityOperations, SecurityOperationsImpl

public class SecurityOperations
extends java.lang.Object

Provides a class for managing users and permissions


Constructor Summary
protected SecurityOperations()
           
 
Method Summary
 boolean authenticateUser(java.lang.String user, byte[] password)
          Verify a username/password combination is valid
 void changeUserAuthorizations(java.lang.String user, Authorizations authorizations)
          Set the user's record-level authorizations
 void changeUserPassword(java.lang.String user, byte[] password)
          Set the user's password
 void createUser(java.lang.String user, byte[] password, Authorizations authorizations)
          Create a user
 void dropUser(java.lang.String user)
          Delete a user
 Authorizations getUserAuthorizations(java.lang.String user)
          Retrieves the user's authorizations for scanning
 void grantSystemPermission(java.lang.String user, SystemPermission permission)
          Grant a user a system permission
 void grantTablePermission(java.lang.String user, java.lang.String table, TablePermission permission)
          Grant a user a specific permission for a specific table
 boolean hasSystemPermission(java.lang.String user, SystemPermission perm)
          Verify the user has a particular system permission
 boolean hasTablePermission(java.lang.String user, java.lang.String table, TablePermission perm)
          Verify the user has a particular table permission
 java.util.Set<java.lang.String> listUsers()
          Return a list of users in accumulo
 void revokeSystemPermission(java.lang.String user, SystemPermission permission)
          Revoke a system permission from a user
 void revokeTablePermission(java.lang.String user, java.lang.String table, TablePermission permission)
          Revoke a table permission for a specific user on a specific table
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

SecurityOperations

protected SecurityOperations()
Method Detail

createUser

public void createUser(java.lang.String user,
                       byte[] password,
                       Authorizations authorizations)
                throws AccumuloException,
                       AccumuloSecurityException
Create a user

Parameters:
user - the name of the user to create
password - the plaintext password for the user
authorizations - the authorizations that the user has for scanning
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to create a user

dropUser

public void dropUser(java.lang.String user)
              throws AccumuloException,
                     AccumuloSecurityException
Delete a user

Parameters:
user - the user name to delete
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to delete a user

authenticateUser

public boolean authenticateUser(java.lang.String user,
                                byte[] password)
                         throws AccumuloException,
                                AccumuloSecurityException
Verify a username/password combination is valid

Parameters:
user - the name of the user to authenticate
password - the plaintext password for the user
Returns:
true if the user asking is allowed to know and the specified user/password is valid, false otherwise
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to ask

changeUserPassword

public void changeUserPassword(java.lang.String user,
                               byte[] password)
                        throws AccumuloException,
                               AccumuloSecurityException
Set the user's password

Parameters:
user - the name of the user to modify
password - the plaintext password for the user
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to modify a user

changeUserAuthorizations

public void changeUserAuthorizations(java.lang.String user,
                                     Authorizations authorizations)
                              throws AccumuloException,
                                     AccumuloSecurityException
Set the user's record-level authorizations

Parameters:
user - the name of the user to modify
authorizations - the authorizations that the user has for scanning
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to modify a user

getUserAuthorizations

public Authorizations getUserAuthorizations(java.lang.String user)
                                     throws AccumuloException,
                                            AccumuloSecurityException
Retrieves the user's authorizations for scanning

Parameters:
user - the name of the user to query
Returns:
the set of authorizations the user has available for scanning
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to query a user

hasSystemPermission

public boolean hasSystemPermission(java.lang.String user,
                                   SystemPermission perm)
                            throws AccumuloException,
                                   AccumuloSecurityException
Verify the user has a particular system permission

Parameters:
user - the name of the user to query
perm - the system permission to check for
Returns:
true if user has that permission; false otherwise
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to query a user

hasTablePermission

public boolean hasTablePermission(java.lang.String user,
                                  java.lang.String table,
                                  TablePermission perm)
                           throws AccumuloException,
                                  AccumuloSecurityException
Verify the user has a particular table permission

Parameters:
user - the name of the user to query
table - the name of the table to query about
perm - the table permission to check for
Returns:
true if user has that permission; false otherwise
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to query a user

grantSystemPermission

public void grantSystemPermission(java.lang.String user,
                                  SystemPermission permission)
                           throws AccumuloException,
                                  AccumuloSecurityException
Grant a user a system permission

Parameters:
user - the name of the user to modify
permission - the system permission to grant to the user
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to grant a user permissions

grantTablePermission

public void grantTablePermission(java.lang.String user,
                                 java.lang.String table,
                                 TablePermission permission)
                          throws AccumuloException,
                                 AccumuloSecurityException
Grant a user a specific permission for a specific table

Parameters:
user - the name of the user to modify
table - the name of the table to modify for the user
permission - the table permission to grant to the user
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to grant a user permissions

revokeSystemPermission

public void revokeSystemPermission(java.lang.String user,
                                   SystemPermission permission)
                            throws AccumuloException,
                                   AccumuloSecurityException
Revoke a system permission from a user

Parameters:
user - the name of the user to modify
permission - the system permission to revoke for the user
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to revoke a user's permissions

revokeTablePermission

public void revokeTablePermission(java.lang.String user,
                                  java.lang.String table,
                                  TablePermission permission)
                           throws AccumuloException,
                                  AccumuloSecurityException
Revoke a table permission for a specific user on a specific table

Parameters:
user - the name of the user to modify
table - the name of the table to modify for the user
permission - the table permission to revoke for the user
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to revoke a user's permissions

listUsers

public java.util.Set<java.lang.String> listUsers()
                                          throws AccumuloException,
                                                 AccumuloSecurityException
Return a list of users in accumulo

Returns:
a set of user names
Throws:
AccumuloException - if a general error occurs
AccumuloSecurityException - if the user does not have permission to query users


Copyright © 2012 The Apache Software Foundation. All Rights Reserved.