You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@accumulo.apache.org by vi...@apache.org on 2013/03/05 20:03:06 UTC

svn commit: r1452946 [2/3] - in /accumulo/branches/1.5: core/src/main/java/org/apache/accumulo/core/security/ proxy/src/main/java/org/apache/accumulo/proxy/ proxy/src/main/java/org/apache/accumulo/proxy/thrift/ proxy/src/main/thrift/ proxy/src/test/jav...

Modified: accumulo/branches/1.5/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java
URL: http://svn.apache.org/viewvc/accumulo/branches/1.5/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java?rev=1452946&r1=1452945&r2=1452946&view=diff
==============================================================================
--- accumulo/branches/1.5/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java (original)
+++ accumulo/branches/1.5/proxy/src/main/java/org/apache/accumulo/proxy/thrift/AccumuloProxy.java Tue Mar  5 19:03:05 2013
@@ -50,7 +50,7 @@ import org.slf4j.LoggerFactory;
 
   public interface Iface {
 
-    public ByteBuffer login(UserPass login) throws org.apache.thrift.TException;
+    public ByteBuffer login(String principal, Map<String,String> loginProperties) throws AccumuloSecurityException, org.apache.thrift.TException;
 
     public int addConstraint(ByteBuffer login, String tableName, String constraintClassName) throws AccumuloException, AccumuloSecurityException, TableNotFoundException, org.apache.thrift.TException;
 
@@ -140,15 +140,15 @@ import org.slf4j.LoggerFactory;
 
     public boolean testClassLoad(ByteBuffer login, String className, String asTypeName) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
-    public boolean authenticateUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
+    public boolean authenticateUser(ByteBuffer login, String user, Map<String,String> properties) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
     public void changeUserAuthorizations(ByteBuffer login, String user, Set<ByteBuffer> authorizations) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
-    public void changeUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
+    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
-    public void createUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
+    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
-    public void dropUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
+    public void dropLocalUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
     public List<ByteBuffer> getUserAuthorizations(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
@@ -160,7 +160,7 @@ import org.slf4j.LoggerFactory;
 
     public boolean hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
-    public Set<String> listUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
+    public Set<String> listLocalUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
     public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException;
 
@@ -196,7 +196,7 @@ import org.slf4j.LoggerFactory;
 
   public interface AsyncIface {
 
-    public void login(UserPass login, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.login_call> resultHandler) throws org.apache.thrift.TException;
+    public void login(String principal, Map<String,String> loginProperties, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.login_call> resultHandler) throws org.apache.thrift.TException;
 
     public void addConstraint(ByteBuffer login, String tableName, String constraintClassName, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.addConstraint_call> resultHandler) throws org.apache.thrift.TException;
 
@@ -286,15 +286,15 @@ import org.slf4j.LoggerFactory;
 
     public void testClassLoad(ByteBuffer login, String className, String asTypeName, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.testClassLoad_call> resultHandler) throws org.apache.thrift.TException;
 
-    public void authenticateUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.authenticateUser_call> resultHandler) throws org.apache.thrift.TException;
+    public void authenticateUser(ByteBuffer login, String user, Map<String,String> properties, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.authenticateUser_call> resultHandler) throws org.apache.thrift.TException;
 
     public void changeUserAuthorizations(ByteBuffer login, String user, Set<ByteBuffer> authorizations, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.changeUserAuthorizations_call> resultHandler) throws org.apache.thrift.TException;
 
-    public void changeUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.changeUserPassword_call> resultHandler) throws org.apache.thrift.TException;
+    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.changeLocalUserPassword_call> resultHandler) throws org.apache.thrift.TException;
 
-    public void createUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.createUser_call> resultHandler) throws org.apache.thrift.TException;
+    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.createLocalUser_call> resultHandler) throws org.apache.thrift.TException;
 
-    public void dropUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.dropUser_call> resultHandler) throws org.apache.thrift.TException;
+    public void dropLocalUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.dropLocalUser_call> resultHandler) throws org.apache.thrift.TException;
 
     public void getUserAuthorizations(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.getUserAuthorizations_call> resultHandler) throws org.apache.thrift.TException;
 
@@ -306,7 +306,7 @@ import org.slf4j.LoggerFactory;
 
     public void hasTablePermission(ByteBuffer login, String user, String table, TablePermission perm, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.hasTablePermission_call> resultHandler) throws org.apache.thrift.TException;
 
-    public void listUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.listUsers_call> resultHandler) throws org.apache.thrift.TException;
+    public void listLocalUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.listLocalUsers_call> resultHandler) throws org.apache.thrift.TException;
 
     public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm, org.apache.thrift.async.AsyncMethodCallback<AsyncClient.revokeSystemPermission_call> resultHandler) throws org.apache.thrift.TException;
 
@@ -360,26 +360,30 @@ import org.slf4j.LoggerFactory;
       super(iprot, oprot);
     }
 
-    public ByteBuffer login(UserPass login) throws org.apache.thrift.TException
+    public ByteBuffer login(String principal, Map<String,String> loginProperties) throws AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_login(login);
+      send_login(principal, loginProperties);
       return recv_login();
     }
 
-    public void send_login(UserPass login) throws org.apache.thrift.TException
+    public void send_login(String principal, Map<String,String> loginProperties) throws org.apache.thrift.TException
     {
       login_args args = new login_args();
-      args.setLogin(login);
+      args.setPrincipal(principal);
+      args.setLoginProperties(loginProperties);
       sendBase("login", args);
     }
 
-    public ByteBuffer recv_login() throws org.apache.thrift.TException
+    public ByteBuffer recv_login() throws AccumuloSecurityException, org.apache.thrift.TException
     {
       login_result result = new login_result();
       receiveBase(result, "login");
       if (result.isSetSuccess()) {
         return result.success;
       }
+      if (result.ouch2 != null) {
+        throw result.ouch2;
+      }
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "login failed: unknown result");
     }
 
@@ -1711,18 +1715,18 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "testClassLoad failed: unknown result");
     }
 
-    public boolean authenticateUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public boolean authenticateUser(ByteBuffer login, String user, Map<String,String> properties) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_authenticateUser(login, user, password);
+      send_authenticateUser(login, user, properties);
       return recv_authenticateUser();
     }
 
-    public void send_authenticateUser(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
+    public void send_authenticateUser(ByteBuffer login, String user, Map<String,String> properties) throws org.apache.thrift.TException
     {
       authenticateUser_args args = new authenticateUser_args();
       args.setLogin(login);
       args.setUser(user);
-      args.setPassword(password);
+      args.setProperties(properties);
       sendBase("authenticateUser", args);
     }
 
@@ -1770,25 +1774,25 @@ import org.slf4j.LoggerFactory;
       return;
     }
 
-    public void changeUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_changeUserPassword(login, user, password);
-      recv_changeUserPassword();
+      send_changeLocalUserPassword(login, user, password);
+      recv_changeLocalUserPassword();
     }
 
-    public void send_changeUserPassword(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
+    public void send_changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
     {
-      changeUserPassword_args args = new changeUserPassword_args();
+      changeLocalUserPassword_args args = new changeLocalUserPassword_args();
       args.setLogin(login);
       args.setUser(user);
       args.setPassword(password);
-      sendBase("changeUserPassword", args);
+      sendBase("changeLocalUserPassword", args);
     }
 
-    public void recv_changeUserPassword() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void recv_changeLocalUserPassword() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      changeUserPassword_result result = new changeUserPassword_result();
-      receiveBase(result, "changeUserPassword");
+      changeLocalUserPassword_result result = new changeLocalUserPassword_result();
+      receiveBase(result, "changeLocalUserPassword");
       if (result.ouch1 != null) {
         throw result.ouch1;
       }
@@ -1798,25 +1802,25 @@ import org.slf4j.LoggerFactory;
       return;
     }
 
-    public void createUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_createUser(login, user, password);
-      recv_createUser();
+      send_createLocalUser(login, user, password);
+      recv_createLocalUser();
     }
 
-    public void send_createUser(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
+    public void send_createLocalUser(ByteBuffer login, String user, ByteBuffer password) throws org.apache.thrift.TException
     {
-      createUser_args args = new createUser_args();
+      createLocalUser_args args = new createLocalUser_args();
       args.setLogin(login);
       args.setUser(user);
       args.setPassword(password);
-      sendBase("createUser", args);
+      sendBase("createLocalUser", args);
     }
 
-    public void recv_createUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void recv_createLocalUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      createUser_result result = new createUser_result();
-      receiveBase(result, "createUser");
+      createLocalUser_result result = new createLocalUser_result();
+      receiveBase(result, "createLocalUser");
       if (result.ouch1 != null) {
         throw result.ouch1;
       }
@@ -1826,24 +1830,24 @@ import org.slf4j.LoggerFactory;
       return;
     }
 
-    public void dropUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void dropLocalUser(ByteBuffer login, String user) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_dropUser(login, user);
-      recv_dropUser();
+      send_dropLocalUser(login, user);
+      recv_dropLocalUser();
     }
 
-    public void send_dropUser(ByteBuffer login, String user) throws org.apache.thrift.TException
+    public void send_dropLocalUser(ByteBuffer login, String user) throws org.apache.thrift.TException
     {
-      dropUser_args args = new dropUser_args();
+      dropLocalUser_args args = new dropLocalUser_args();
       args.setLogin(login);
       args.setUser(user);
-      sendBase("dropUser", args);
+      sendBase("dropLocalUser", args);
     }
 
-    public void recv_dropUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public void recv_dropLocalUser() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      dropUser_result result = new dropUser_result();
-      receiveBase(result, "dropUser");
+      dropLocalUser_result result = new dropLocalUser_result();
+      receiveBase(result, "dropLocalUser");
       if (result.ouch1 != null) {
         throw result.ouch1;
       }
@@ -2003,23 +2007,23 @@ import org.slf4j.LoggerFactory;
       throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "hasTablePermission failed: unknown result");
     }
 
-    public Set<String> listUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public Set<String> listLocalUsers(ByteBuffer login) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      send_listUsers(login);
-      return recv_listUsers();
+      send_listLocalUsers(login);
+      return recv_listLocalUsers();
     }
 
-    public void send_listUsers(ByteBuffer login) throws org.apache.thrift.TException
+    public void send_listLocalUsers(ByteBuffer login) throws org.apache.thrift.TException
     {
-      listUsers_args args = new listUsers_args();
+      listLocalUsers_args args = new listLocalUsers_args();
       args.setLogin(login);
-      sendBase("listUsers", args);
+      sendBase("listLocalUsers", args);
     }
 
-    public Set<String> recv_listUsers() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
+    public Set<String> recv_listLocalUsers() throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
     {
-      listUsers_result result = new listUsers_result();
-      receiveBase(result, "listUsers");
+      listLocalUsers_result result = new listLocalUsers_result();
+      receiveBase(result, "listLocalUsers");
       if (result.isSetSuccess()) {
         return result.success;
       }
@@ -2029,7 +2033,7 @@ import org.slf4j.LoggerFactory;
       if (result.ouch2 != null) {
         throw result.ouch2;
       }
-      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listUsers failed: unknown result");
+      throw new org.apache.thrift.TApplicationException(org.apache.thrift.TApplicationException.MISSING_RESULT, "listLocalUsers failed: unknown result");
     }
 
     public void revokeSystemPermission(ByteBuffer login, String user, SystemPermission perm) throws AccumuloException, AccumuloSecurityException, org.apache.thrift.TException
@@ -2454,29 +2458,32 @@ import org.slf4j.LoggerFactory;
       super(protocolFactory, clientManager, transport);
     }
 
-    public void login(UserPass login, org.apache.thrift.async.AsyncMethodCallback<login_call> resultHandler) throws org.apache.thrift.TException {
+    public void login(String principal, Map<String,String> loginProperties, org.apache.thrift.async.AsyncMethodCallback<login_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      login_call method_call = new login_call(login, resultHandler, this, ___protocolFactory, ___transport);
+      login_call method_call = new login_call(principal, loginProperties, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
     public static class login_call extends org.apache.thrift.async.TAsyncMethodCall {
-      private UserPass login;
-      public login_call(UserPass login, org.apache.thrift.async.AsyncMethodCallback<login_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private String principal;
+      private Map<String,String> loginProperties;
+      public login_call(String principal, Map<String,String> loginProperties, org.apache.thrift.async.AsyncMethodCallback<login_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
-        this.login = login;
+        this.principal = principal;
+        this.loginProperties = loginProperties;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
         prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("login", org.apache.thrift.protocol.TMessageType.CALL, 0));
         login_args args = new login_args();
-        args.setLogin(login);
+        args.setPrincipal(principal);
+        args.setLoginProperties(loginProperties);
         args.write(prot);
         prot.writeMessageEnd();
       }
 
-      public ByteBuffer getResult() throws org.apache.thrift.TException {
+      public ByteBuffer getResult() throws AccumuloSecurityException, org.apache.thrift.TException {
         if (getState() != org.apache.thrift.async.TAsyncMethodCall.State.RESPONSE_READ) {
           throw new IllegalStateException("Method call not finished!");
         }
@@ -4158,9 +4165,9 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void authenticateUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<authenticateUser_call> resultHandler) throws org.apache.thrift.TException {
+    public void authenticateUser(ByteBuffer login, String user, Map<String,String> properties, org.apache.thrift.async.AsyncMethodCallback<authenticateUser_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      authenticateUser_call method_call = new authenticateUser_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
+      authenticateUser_call method_call = new authenticateUser_call(login, user, properties, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
@@ -4168,12 +4175,12 @@ import org.slf4j.LoggerFactory;
     public static class authenticateUser_call extends org.apache.thrift.async.TAsyncMethodCall {
       private ByteBuffer login;
       private String user;
-      private ByteBuffer password;
-      public authenticateUser_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<authenticateUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      private Map<String,String> properties;
+      public authenticateUser_call(ByteBuffer login, String user, Map<String,String> properties, org.apache.thrift.async.AsyncMethodCallback<authenticateUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.login = login;
         this.user = user;
-        this.password = password;
+        this.properties = properties;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
@@ -4181,7 +4188,7 @@ import org.slf4j.LoggerFactory;
         authenticateUser_args args = new authenticateUser_args();
         args.setLogin(login);
         args.setUser(user);
-        args.setPassword(password);
+        args.setProperties(properties);
         args.write(prot);
         prot.writeMessageEnd();
       }
@@ -4234,18 +4241,18 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void changeUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<changeUserPassword_call> resultHandler) throws org.apache.thrift.TException {
+    public void changeLocalUserPassword(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<changeLocalUserPassword_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      changeUserPassword_call method_call = new changeUserPassword_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
+      changeLocalUserPassword_call method_call = new changeLocalUserPassword_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class changeUserPassword_call extends org.apache.thrift.async.TAsyncMethodCall {
+    public static class changeLocalUserPassword_call extends org.apache.thrift.async.TAsyncMethodCall {
       private ByteBuffer login;
       private String user;
       private ByteBuffer password;
-      public changeUserPassword_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<changeUserPassword_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public changeLocalUserPassword_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<changeLocalUserPassword_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.login = login;
         this.user = user;
@@ -4253,8 +4260,8 @@ import org.slf4j.LoggerFactory;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
-        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("changeUserPassword", org.apache.thrift.protocol.TMessageType.CALL, 0));
-        changeUserPassword_args args = new changeUserPassword_args();
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("changeLocalUserPassword", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        changeLocalUserPassword_args args = new changeLocalUserPassword_args();
         args.setLogin(login);
         args.setUser(user);
         args.setPassword(password);
@@ -4268,22 +4275,22 @@ import org.slf4j.LoggerFactory;
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_changeUserPassword();
+        (new Client(prot)).recv_changeLocalUserPassword();
       }
     }
 
-    public void createUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<createUser_call> resultHandler) throws org.apache.thrift.TException {
+    public void createLocalUser(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<createLocalUser_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      createUser_call method_call = new createUser_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
+      createLocalUser_call method_call = new createLocalUser_call(login, user, password, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class createUser_call extends org.apache.thrift.async.TAsyncMethodCall {
+    public static class createLocalUser_call extends org.apache.thrift.async.TAsyncMethodCall {
       private ByteBuffer login;
       private String user;
       private ByteBuffer password;
-      public createUser_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<createUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public createLocalUser_call(ByteBuffer login, String user, ByteBuffer password, org.apache.thrift.async.AsyncMethodCallback<createLocalUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.login = login;
         this.user = user;
@@ -4291,8 +4298,8 @@ import org.slf4j.LoggerFactory;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
-        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
-        createUser_args args = new createUser_args();
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("createLocalUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        createLocalUser_args args = new createLocalUser_args();
         args.setLogin(login);
         args.setUser(user);
         args.setPassword(password);
@@ -4306,29 +4313,29 @@ import org.slf4j.LoggerFactory;
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_createUser();
+        (new Client(prot)).recv_createLocalUser();
       }
     }
 
-    public void dropUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<dropUser_call> resultHandler) throws org.apache.thrift.TException {
+    public void dropLocalUser(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<dropLocalUser_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      dropUser_call method_call = new dropUser_call(login, user, resultHandler, this, ___protocolFactory, ___transport);
+      dropLocalUser_call method_call = new dropLocalUser_call(login, user, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class dropUser_call extends org.apache.thrift.async.TAsyncMethodCall {
+    public static class dropLocalUser_call extends org.apache.thrift.async.TAsyncMethodCall {
       private ByteBuffer login;
       private String user;
-      public dropUser_call(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<dropUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public dropLocalUser_call(ByteBuffer login, String user, org.apache.thrift.async.AsyncMethodCallback<dropLocalUser_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.login = login;
         this.user = user;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
-        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("dropUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
-        dropUser_args args = new dropUser_args();
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("dropLocalUser", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        dropLocalUser_args args = new dropLocalUser_args();
         args.setLogin(login);
         args.setUser(user);
         args.write(prot);
@@ -4341,7 +4348,7 @@ import org.slf4j.LoggerFactory;
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        (new Client(prot)).recv_dropUser();
+        (new Client(prot)).recv_dropLocalUser();
       }
     }
 
@@ -4538,23 +4545,23 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public void listUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<listUsers_call> resultHandler) throws org.apache.thrift.TException {
+    public void listLocalUsers(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<listLocalUsers_call> resultHandler) throws org.apache.thrift.TException {
       checkReady();
-      listUsers_call method_call = new listUsers_call(login, resultHandler, this, ___protocolFactory, ___transport);
+      listLocalUsers_call method_call = new listLocalUsers_call(login, resultHandler, this, ___protocolFactory, ___transport);
       this.___currentMethod = method_call;
       ___manager.call(method_call);
     }
 
-    public static class listUsers_call extends org.apache.thrift.async.TAsyncMethodCall {
+    public static class listLocalUsers_call extends org.apache.thrift.async.TAsyncMethodCall {
       private ByteBuffer login;
-      public listUsers_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<listUsers_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
+      public listLocalUsers_call(ByteBuffer login, org.apache.thrift.async.AsyncMethodCallback<listLocalUsers_call> resultHandler, org.apache.thrift.async.TAsyncClient client, org.apache.thrift.protocol.TProtocolFactory protocolFactory, org.apache.thrift.transport.TNonblockingTransport transport) throws org.apache.thrift.TException {
         super(client, protocolFactory, transport, resultHandler, false);
         this.login = login;
       }
 
       public void write_args(org.apache.thrift.protocol.TProtocol prot) throws org.apache.thrift.TException {
-        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listUsers", org.apache.thrift.protocol.TMessageType.CALL, 0));
-        listUsers_args args = new listUsers_args();
+        prot.writeMessageBegin(new org.apache.thrift.protocol.TMessage("listLocalUsers", org.apache.thrift.protocol.TMessageType.CALL, 0));
+        listLocalUsers_args args = new listLocalUsers_args();
         args.setLogin(login);
         args.write(prot);
         prot.writeMessageEnd();
@@ -4566,7 +4573,7 @@ import org.slf4j.LoggerFactory;
         }
         org.apache.thrift.transport.TMemoryInputTransport memoryTransport = new org.apache.thrift.transport.TMemoryInputTransport(getFrameBuffer().array());
         org.apache.thrift.protocol.TProtocol prot = client.getProtocolFactory().getProtocol(memoryTransport);
-        return (new Client(prot)).recv_listUsers();
+        return (new Client(prot)).recv_listLocalUsers();
       }
     }
 
@@ -5157,15 +5164,15 @@ import org.slf4j.LoggerFactory;
       processMap.put("testClassLoad", new testClassLoad());
       processMap.put("authenticateUser", new authenticateUser());
       processMap.put("changeUserAuthorizations", new changeUserAuthorizations());
-      processMap.put("changeUserPassword", new changeUserPassword());
-      processMap.put("createUser", new createUser());
-      processMap.put("dropUser", new dropUser());
+      processMap.put("changeLocalUserPassword", new changeLocalUserPassword());
+      processMap.put("createLocalUser", new createLocalUser());
+      processMap.put("dropLocalUser", new dropLocalUser());
       processMap.put("getUserAuthorizations", new getUserAuthorizations());
       processMap.put("grantSystemPermission", new grantSystemPermission());
       processMap.put("grantTablePermission", new grantTablePermission());
       processMap.put("hasSystemPermission", new hasSystemPermission());
       processMap.put("hasTablePermission", new hasTablePermission());
-      processMap.put("listUsers", new listUsers());
+      processMap.put("listLocalUsers", new listLocalUsers());
       processMap.put("revokeSystemPermission", new revokeSystemPermission());
       processMap.put("revokeTablePermission", new revokeTablePermission());
       processMap.put("createBatchScanner", new createBatchScanner());
@@ -5199,7 +5206,11 @@ import org.slf4j.LoggerFactory;
 
       public login_result getResult(I iface, login_args args) throws org.apache.thrift.TException {
         login_result result = new login_result();
-        result.success = iface.login(args.login);
+        try {
+          result.success = iface.login(args.principal, args.loginProperties);
+        } catch (AccumuloSecurityException ouch2) {
+          result.ouch2 = ouch2;
+        }
         return result;
       }
     }
@@ -6387,7 +6398,7 @@ import org.slf4j.LoggerFactory;
       public authenticateUser_result getResult(I iface, authenticateUser_args args) throws org.apache.thrift.TException {
         authenticateUser_result result = new authenticateUser_result();
         try {
-          result.success = iface.authenticateUser(args.login, args.user, args.password);
+          result.success = iface.authenticateUser(args.login, args.user, args.properties);
           result.setSuccessIsSet(true);
         } catch (AccumuloException ouch1) {
           result.ouch1 = ouch1;
@@ -6424,23 +6435,23 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class changeUserPassword<I extends Iface> extends org.apache.thrift.ProcessFunction<I, changeUserPassword_args> {
-      public changeUserPassword() {
-        super("changeUserPassword");
+    public static class changeLocalUserPassword<I extends Iface> extends org.apache.thrift.ProcessFunction<I, changeLocalUserPassword_args> {
+      public changeLocalUserPassword() {
+        super("changeLocalUserPassword");
       }
 
-      public changeUserPassword_args getEmptyArgsInstance() {
-        return new changeUserPassword_args();
+      public changeLocalUserPassword_args getEmptyArgsInstance() {
+        return new changeLocalUserPassword_args();
       }
 
       protected boolean isOneway() {
         return false;
       }
 
-      public changeUserPassword_result getResult(I iface, changeUserPassword_args args) throws org.apache.thrift.TException {
-        changeUserPassword_result result = new changeUserPassword_result();
+      public changeLocalUserPassword_result getResult(I iface, changeLocalUserPassword_args args) throws org.apache.thrift.TException {
+        changeLocalUserPassword_result result = new changeLocalUserPassword_result();
         try {
-          iface.changeUserPassword(args.login, args.user, args.password);
+          iface.changeLocalUserPassword(args.login, args.user, args.password);
         } catch (AccumuloException ouch1) {
           result.ouch1 = ouch1;
         } catch (AccumuloSecurityException ouch2) {
@@ -6450,23 +6461,23 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class createUser<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createUser_args> {
-      public createUser() {
-        super("createUser");
+    public static class createLocalUser<I extends Iface> extends org.apache.thrift.ProcessFunction<I, createLocalUser_args> {
+      public createLocalUser() {
+        super("createLocalUser");
       }
 
-      public createUser_args getEmptyArgsInstance() {
-        return new createUser_args();
+      public createLocalUser_args getEmptyArgsInstance() {
+        return new createLocalUser_args();
       }
 
       protected boolean isOneway() {
         return false;
       }
 
-      public createUser_result getResult(I iface, createUser_args args) throws org.apache.thrift.TException {
-        createUser_result result = new createUser_result();
+      public createLocalUser_result getResult(I iface, createLocalUser_args args) throws org.apache.thrift.TException {
+        createLocalUser_result result = new createLocalUser_result();
         try {
-          iface.createUser(args.login, args.user, args.password);
+          iface.createLocalUser(args.login, args.user, args.password);
         } catch (AccumuloException ouch1) {
           result.ouch1 = ouch1;
         } catch (AccumuloSecurityException ouch2) {
@@ -6476,23 +6487,23 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class dropUser<I extends Iface> extends org.apache.thrift.ProcessFunction<I, dropUser_args> {
-      public dropUser() {
-        super("dropUser");
+    public static class dropLocalUser<I extends Iface> extends org.apache.thrift.ProcessFunction<I, dropLocalUser_args> {
+      public dropLocalUser() {
+        super("dropLocalUser");
       }
 
-      public dropUser_args getEmptyArgsInstance() {
-        return new dropUser_args();
+      public dropLocalUser_args getEmptyArgsInstance() {
+        return new dropLocalUser_args();
       }
 
       protected boolean isOneway() {
         return false;
       }
 
-      public dropUser_result getResult(I iface, dropUser_args args) throws org.apache.thrift.TException {
-        dropUser_result result = new dropUser_result();
+      public dropLocalUser_result getResult(I iface, dropLocalUser_args args) throws org.apache.thrift.TException {
+        dropLocalUser_result result = new dropLocalUser_result();
         try {
-          iface.dropUser(args.login, args.user);
+          iface.dropLocalUser(args.login, args.user);
         } catch (AccumuloException ouch1) {
           result.ouch1 = ouch1;
         } catch (AccumuloSecurityException ouch2) {
@@ -6634,23 +6645,23 @@ import org.slf4j.LoggerFactory;
       }
     }
 
-    public static class listUsers<I extends Iface> extends org.apache.thrift.ProcessFunction<I, listUsers_args> {
-      public listUsers() {
-        super("listUsers");
+    public static class listLocalUsers<I extends Iface> extends org.apache.thrift.ProcessFunction<I, listLocalUsers_args> {
+      public listLocalUsers() {
+        super("listLocalUsers");
       }
 
-      public listUsers_args getEmptyArgsInstance() {
-        return new listUsers_args();
+      public listLocalUsers_args getEmptyArgsInstance() {
+        return new listLocalUsers_args();
       }
 
       protected boolean isOneway() {
         return false;
       }
 
-      public listUsers_result getResult(I iface, listUsers_args args) throws org.apache.thrift.TException {
-        listUsers_result result = new listUsers_result();
+      public listLocalUsers_result getResult(I iface, listLocalUsers_args args) throws org.apache.thrift.TException {
+        listLocalUsers_result result = new listLocalUsers_result();
         try {
-          result.success = iface.listUsers(args.login);
+          result.success = iface.listLocalUsers(args.login);
         } catch (AccumuloException ouch1) {
           result.ouch1 = ouch1;
         } catch (AccumuloSecurityException ouch2) {
@@ -7037,7 +7048,8 @@ import org.slf4j.LoggerFactory;
   public static class login_args implements org.apache.thrift.TBase<login_args, login_args._Fields>, java.io.Serializable, Cloneable   {
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("login_args");
 
-    private static final org.apache.thrift.protocol.TField LOGIN_FIELD_DESC = new org.apache.thrift.protocol.TField("login", org.apache.thrift.protocol.TType.STRUCT, (short)1);
+    private static final org.apache.thrift.protocol.TField PRINCIPAL_FIELD_DESC = new org.apache.thrift.protocol.TField("principal", org.apache.thrift.protocol.TType.STRING, (short)1);
+    private static final org.apache.thrift.protocol.TField LOGIN_PROPERTIES_FIELD_DESC = new org.apache.thrift.protocol.TField("loginProperties", org.apache.thrift.protocol.TType.MAP, (short)2);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -7045,11 +7057,13 @@ import org.slf4j.LoggerFactory;
       schemes.put(TupleScheme.class, new login_argsTupleSchemeFactory());
     }
 
-    public UserPass login; // required
+    public String principal; // required
+    public Map<String,String> loginProperties; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      LOGIN((short)1, "login");
+      PRINCIPAL((short)1, "principal"),
+      LOGIN_PROPERTIES((short)2, "loginProperties");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -7064,8 +7078,10 @@ import org.slf4j.LoggerFactory;
        */
       public static _Fields findByThriftId(int fieldId) {
         switch(fieldId) {
-          case 1: // LOGIN
-            return LOGIN;
+          case 1: // PRINCIPAL
+            return PRINCIPAL;
+          case 2: // LOGIN_PROPERTIES
+            return LOGIN_PROPERTIES;
           default:
             return null;
         }
@@ -7109,8 +7125,12 @@ import org.slf4j.LoggerFactory;
     public static final Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> metaDataMap;
     static {
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
-      tmpMap.put(_Fields.LOGIN, new org.apache.thrift.meta_data.FieldMetaData("login", org.apache.thrift.TFieldRequirementType.DEFAULT, 
-          new org.apache.thrift.meta_data.StructMetaData(org.apache.thrift.protocol.TType.STRUCT, UserPass.class)));
+      tmpMap.put(_Fields.PRINCIPAL, new org.apache.thrift.meta_data.FieldMetaData("principal", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING)));
+      tmpMap.put(_Fields.LOGIN_PROPERTIES, new org.apache.thrift.meta_data.FieldMetaData("loginProperties", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.MapMetaData(org.apache.thrift.protocol.TType.MAP, 
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING), 
+              new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING))));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(login_args.class, metaDataMap);
     }
@@ -7119,18 +7139,35 @@ import org.slf4j.LoggerFactory;
     }
 
     public login_args(
-      UserPass login)
+      String principal,
+      Map<String,String> loginProperties)
     {
       this();
-      this.login = login;
+      this.principal = principal;
+      this.loginProperties = loginProperties;
     }
 
     /**
      * Performs a deep copy on <i>other</i>.
      */
     public login_args(login_args other) {
-      if (other.isSetLogin()) {
-        this.login = new UserPass(other.login);
+      if (other.isSetPrincipal()) {
+        this.principal = other.principal;
+      }
+      if (other.isSetLoginProperties()) {
+        Map<String,String> __this__loginProperties = new HashMap<String,String>();
+        for (Map.Entry<String, String> other_element : other.loginProperties.entrySet()) {
+
+          String other_element_key = other_element.getKey();
+          String other_element_value = other_element.getValue();
+
+          String __this__loginProperties_copy_key = other_element_key;
+
+          String __this__loginProperties_copy_value = other_element_value;
+
+          __this__loginProperties.put(__this__loginProperties_copy_key, __this__loginProperties_copy_value);
+        }
+        this.loginProperties = __this__loginProperties;
       }
     }
 
@@ -7140,40 +7177,84 @@ import org.slf4j.LoggerFactory;
 
     @Override
     public void clear() {
-      this.login = null;
+      this.principal = null;
+      this.loginProperties = null;
     }
 
-    public UserPass getLogin() {
-      return this.login;
+    public String getPrincipal() {
+      return this.principal;
     }
 
-    public login_args setLogin(UserPass login) {
-      this.login = login;
+    public login_args setPrincipal(String principal) {
+      this.principal = principal;
       return this;
     }
 
-    public void unsetLogin() {
-      this.login = null;
+    public void unsetPrincipal() {
+      this.principal = null;
     }
 
-    /** Returns true if field login is set (has been assigned a value) and false otherwise */
-    public boolean isSetLogin() {
-      return this.login != null;
+    /** Returns true if field principal is set (has been assigned a value) and false otherwise */
+    public boolean isSetPrincipal() {
+      return this.principal != null;
     }
 
-    public void setLoginIsSet(boolean value) {
+    public void setPrincipalIsSet(boolean value) {
       if (!value) {
-        this.login = null;
+        this.principal = null;
+      }
+    }
+
+    public int getLoginPropertiesSize() {
+      return (this.loginProperties == null) ? 0 : this.loginProperties.size();
+    }
+
+    public void putToLoginProperties(String key, String val) {
+      if (this.loginProperties == null) {
+        this.loginProperties = new HashMap<String,String>();
+      }
+      this.loginProperties.put(key, val);
+    }
+
+    public Map<String,String> getLoginProperties() {
+      return this.loginProperties;
+    }
+
+    public login_args setLoginProperties(Map<String,String> loginProperties) {
+      this.loginProperties = loginProperties;
+      return this;
+    }
+
+    public void unsetLoginProperties() {
+      this.loginProperties = null;
+    }
+
+    /** Returns true if field loginProperties is set (has been assigned a value) and false otherwise */
+    public boolean isSetLoginProperties() {
+      return this.loginProperties != null;
+    }
+
+    public void setLoginPropertiesIsSet(boolean value) {
+      if (!value) {
+        this.loginProperties = null;
       }
     }
 
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
-      case LOGIN:
+      case PRINCIPAL:
         if (value == null) {
-          unsetLogin();
+          unsetPrincipal();
         } else {
-          setLogin((UserPass)value);
+          setPrincipal((String)value);
+        }
+        break;
+
+      case LOGIN_PROPERTIES:
+        if (value == null) {
+          unsetLoginProperties();
+        } else {
+          setLoginProperties((Map<String,String>)value);
         }
         break;
 
@@ -7182,8 +7263,11 @@ import org.slf4j.LoggerFactory;
 
     public Object getFieldValue(_Fields field) {
       switch (field) {
-      case LOGIN:
-        return getLogin();
+      case PRINCIPAL:
+        return getPrincipal();
+
+      case LOGIN_PROPERTIES:
+        return getLoginProperties();
 
       }
       throw new IllegalStateException();
@@ -7196,8 +7280,10 @@ import org.slf4j.LoggerFactory;
       }
 
       switch (field) {
-      case LOGIN:
-        return isSetLogin();
+      case PRINCIPAL:
+        return isSetPrincipal();
+      case LOGIN_PROPERTIES:
+        return isSetLoginProperties();
       }
       throw new IllegalStateException();
     }
@@ -7215,12 +7301,21 @@ import org.slf4j.LoggerFactory;
       if (that == null)
         return false;
 
-      boolean this_present_login = true && this.isSetLogin();
-      boolean that_present_login = true && that.isSetLogin();
-      if (this_present_login || that_present_login) {
-        if (!(this_present_login && that_present_login))
+      boolean this_present_principal = true && this.isSetPrincipal();
+      boolean that_present_principal = true && that.isSetPrincipal();
+      if (this_present_principal || that_present_principal) {
+        if (!(this_present_principal && that_present_principal))
           return false;
-        if (!this.login.equals(that.login))
+        if (!this.principal.equals(that.principal))
+          return false;
+      }
+
+      boolean this_present_loginProperties = true && this.isSetLoginProperties();
+      boolean that_present_loginProperties = true && that.isSetLoginProperties();
+      if (this_present_loginProperties || that_present_loginProperties) {
+        if (!(this_present_loginProperties && that_present_loginProperties))
+          return false;
+        if (!this.loginProperties.equals(that.loginProperties))
           return false;
       }
 
@@ -7240,12 +7335,22 @@ import org.slf4j.LoggerFactory;
       int lastComparison = 0;
       login_args typedOther = (login_args)other;
 
-      lastComparison = Boolean.valueOf(isSetLogin()).compareTo(typedOther.isSetLogin());
+      lastComparison = Boolean.valueOf(isSetPrincipal()).compareTo(typedOther.isSetPrincipal());
       if (lastComparison != 0) {
         return lastComparison;
       }
-      if (isSetLogin()) {
-        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.login, typedOther.login);
+      if (isSetPrincipal()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.principal, typedOther.principal);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
+      lastComparison = Boolean.valueOf(isSetLoginProperties()).compareTo(typedOther.isSetLoginProperties());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetLoginProperties()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.loginProperties, typedOther.loginProperties);
         if (lastComparison != 0) {
           return lastComparison;
         }
@@ -7270,11 +7375,19 @@ import org.slf4j.LoggerFactory;
       StringBuilder sb = new StringBuilder("login_args(");
       boolean first = true;
 
-      sb.append("login:");
-      if (this.login == null) {
+      sb.append("principal:");
+      if (this.principal == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.principal);
+      }
+      first = false;
+      if (!first) sb.append(", ");
+      sb.append("loginProperties:");
+      if (this.loginProperties == null) {
         sb.append("null");
       } else {
-        sb.append(this.login);
+        sb.append(this.loginProperties);
       }
       first = false;
       sb.append(")");
@@ -7284,9 +7397,6 @@ import org.slf4j.LoggerFactory;
     public void validate() throws org.apache.thrift.TException {
       // check for required fields
       // check for sub-struct validity
-      if (login != null) {
-        login.validate();
-      }
     }
 
     private void writeObject(java.io.ObjectOutputStream out) throws java.io.IOException {
@@ -7323,11 +7433,30 @@ import org.slf4j.LoggerFactory;
             break;
           }
           switch (schemeField.id) {
-            case 1: // LOGIN
-              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
-                struct.login = new UserPass();
-                struct.login.read(iprot);
-                struct.setLoginIsSet(true);
+            case 1: // PRINCIPAL
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRING) {
+                struct.principal = iprot.readString();
+                struct.setPrincipalIsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
+            case 2: // LOGIN_PROPERTIES
+              if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
+                {
+                  org.apache.thrift.protocol.TMap _map114 = iprot.readMapBegin();
+                  struct.loginProperties = new HashMap<String,String>(2*_map114.size);
+                  for (int _i115 = 0; _i115 < _map114.size; ++_i115)
+                  {
+                    String _key116; // required
+                    String _val117; // required
+                    _key116 = iprot.readString();
+                    _val117 = iprot.readString();
+                    struct.loginProperties.put(_key116, _val117);
+                  }
+                  iprot.readMapEnd();
+                }
+                struct.setLoginPropertiesIsSet(true);
               } else { 
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
@@ -7347,9 +7476,22 @@ import org.slf4j.LoggerFactory;
         struct.validate();
 
         oprot.writeStructBegin(STRUCT_DESC);
-        if (struct.login != null) {
-          oprot.writeFieldBegin(LOGIN_FIELD_DESC);
-          struct.login.write(oprot);
+        if (struct.principal != null) {
+          oprot.writeFieldBegin(PRINCIPAL_FIELD_DESC);
+          oprot.writeString(struct.principal);
+          oprot.writeFieldEnd();
+        }
+        if (struct.loginProperties != null) {
+          oprot.writeFieldBegin(LOGIN_PROPERTIES_FIELD_DESC);
+          {
+            oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.loginProperties.size()));
+            for (Map.Entry<String, String> _iter118 : struct.loginProperties.entrySet())
+            {
+              oprot.writeString(_iter118.getKey());
+              oprot.writeString(_iter118.getValue());
+            }
+            oprot.writeMapEnd();
+          }
           oprot.writeFieldEnd();
         }
         oprot.writeFieldStop();
@@ -7370,23 +7512,50 @@ import org.slf4j.LoggerFactory;
       public void write(org.apache.thrift.protocol.TProtocol prot, login_args struct) throws org.apache.thrift.TException {
         TTupleProtocol oprot = (TTupleProtocol) prot;
         BitSet optionals = new BitSet();
-        if (struct.isSetLogin()) {
+        if (struct.isSetPrincipal()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
-        if (struct.isSetLogin()) {
-          struct.login.write(oprot);
+        if (struct.isSetLoginProperties()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
+        if (struct.isSetPrincipal()) {
+          oprot.writeString(struct.principal);
+        }
+        if (struct.isSetLoginProperties()) {
+          {
+            oprot.writeI32(struct.loginProperties.size());
+            for (Map.Entry<String, String> _iter119 : struct.loginProperties.entrySet())
+            {
+              oprot.writeString(_iter119.getKey());
+              oprot.writeString(_iter119.getValue());
+            }
+          }
         }
       }
 
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, login_args struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(1);
+        BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
-          struct.login = new UserPass();
-          struct.login.read(iprot);
-          struct.setLoginIsSet(true);
+          struct.principal = iprot.readString();
+          struct.setPrincipalIsSet(true);
+        }
+        if (incoming.get(1)) {
+          {
+            org.apache.thrift.protocol.TMap _map120 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.loginProperties = new HashMap<String,String>(2*_map120.size);
+            for (int _i121 = 0; _i121 < _map120.size; ++_i121)
+            {
+              String _key122; // required
+              String _val123; // required
+              _key122 = iprot.readString();
+              _val123 = iprot.readString();
+              struct.loginProperties.put(_key122, _val123);
+            }
+          }
+          struct.setLoginPropertiesIsSet(true);
         }
       }
     }
@@ -7397,6 +7566,7 @@ import org.slf4j.LoggerFactory;
     private static final org.apache.thrift.protocol.TStruct STRUCT_DESC = new org.apache.thrift.protocol.TStruct("login_result");
 
     private static final org.apache.thrift.protocol.TField SUCCESS_FIELD_DESC = new org.apache.thrift.protocol.TField("success", org.apache.thrift.protocol.TType.STRING, (short)0);
+    private static final org.apache.thrift.protocol.TField OUCH2_FIELD_DESC = new org.apache.thrift.protocol.TField("ouch2", org.apache.thrift.protocol.TType.STRUCT, (short)1);
 
     private static final Map<Class<? extends IScheme>, SchemeFactory> schemes = new HashMap<Class<? extends IScheme>, SchemeFactory>();
     static {
@@ -7405,10 +7575,12 @@ import org.slf4j.LoggerFactory;
     }
 
     public ByteBuffer success; // required
+    public AccumuloSecurityException ouch2; // required
 
     /** The set of fields this struct contains, along with convenience methods for finding and manipulating them. */
     @SuppressWarnings("all") public enum _Fields implements org.apache.thrift.TFieldIdEnum {
-      SUCCESS((short)0, "success");
+      SUCCESS((short)0, "success"),
+      OUCH2((short)1, "ouch2");
 
       private static final Map<String, _Fields> byName = new HashMap<String, _Fields>();
 
@@ -7425,6 +7597,8 @@ import org.slf4j.LoggerFactory;
         switch(fieldId) {
           case 0: // SUCCESS
             return SUCCESS;
+          case 1: // OUCH2
+            return OUCH2;
           default:
             return null;
         }
@@ -7470,6 +7644,8 @@ import org.slf4j.LoggerFactory;
       Map<_Fields, org.apache.thrift.meta_data.FieldMetaData> tmpMap = new EnumMap<_Fields, org.apache.thrift.meta_data.FieldMetaData>(_Fields.class);
       tmpMap.put(_Fields.SUCCESS, new org.apache.thrift.meta_data.FieldMetaData("success", org.apache.thrift.TFieldRequirementType.DEFAULT, 
           new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRING          , true)));
+      tmpMap.put(_Fields.OUCH2, new org.apache.thrift.meta_data.FieldMetaData("ouch2", org.apache.thrift.TFieldRequirementType.DEFAULT, 
+          new org.apache.thrift.meta_data.FieldValueMetaData(org.apache.thrift.protocol.TType.STRUCT)));
       metaDataMap = Collections.unmodifiableMap(tmpMap);
       org.apache.thrift.meta_data.FieldMetaData.addStructMetaDataMap(login_result.class, metaDataMap);
     }
@@ -7478,10 +7654,12 @@ import org.slf4j.LoggerFactory;
     }
 
     public login_result(
-      ByteBuffer success)
+      ByteBuffer success,
+      AccumuloSecurityException ouch2)
     {
       this();
       this.success = success;
+      this.ouch2 = ouch2;
     }
 
     /**
@@ -7492,6 +7670,9 @@ import org.slf4j.LoggerFactory;
         this.success = org.apache.thrift.TBaseHelper.copyBinary(other.success);
 ;
       }
+      if (other.isSetOuch2()) {
+        this.ouch2 = new AccumuloSecurityException(other.ouch2);
+      }
     }
 
     public login_result deepCopy() {
@@ -7501,6 +7682,7 @@ import org.slf4j.LoggerFactory;
     @Override
     public void clear() {
       this.success = null;
+      this.ouch2 = null;
     }
 
     public byte[] getSuccess() {
@@ -7537,6 +7719,30 @@ import org.slf4j.LoggerFactory;
       }
     }
 
+    public AccumuloSecurityException getOuch2() {
+      return this.ouch2;
+    }
+
+    public login_result setOuch2(AccumuloSecurityException ouch2) {
+      this.ouch2 = ouch2;
+      return this;
+    }
+
+    public void unsetOuch2() {
+      this.ouch2 = null;
+    }
+
+    /** Returns true if field ouch2 is set (has been assigned a value) and false otherwise */
+    public boolean isSetOuch2() {
+      return this.ouch2 != null;
+    }
+
+    public void setOuch2IsSet(boolean value) {
+      if (!value) {
+        this.ouch2 = null;
+      }
+    }
+
     public void setFieldValue(_Fields field, Object value) {
       switch (field) {
       case SUCCESS:
@@ -7547,6 +7753,14 @@ import org.slf4j.LoggerFactory;
         }
         break;
 
+      case OUCH2:
+        if (value == null) {
+          unsetOuch2();
+        } else {
+          setOuch2((AccumuloSecurityException)value);
+        }
+        break;
+
       }
     }
 
@@ -7555,6 +7769,9 @@ import org.slf4j.LoggerFactory;
       case SUCCESS:
         return getSuccess();
 
+      case OUCH2:
+        return getOuch2();
+
       }
       throw new IllegalStateException();
     }
@@ -7568,6 +7785,8 @@ import org.slf4j.LoggerFactory;
       switch (field) {
       case SUCCESS:
         return isSetSuccess();
+      case OUCH2:
+        return isSetOuch2();
       }
       throw new IllegalStateException();
     }
@@ -7594,6 +7813,15 @@ import org.slf4j.LoggerFactory;
           return false;
       }
 
+      boolean this_present_ouch2 = true && this.isSetOuch2();
+      boolean that_present_ouch2 = true && that.isSetOuch2();
+      if (this_present_ouch2 || that_present_ouch2) {
+        if (!(this_present_ouch2 && that_present_ouch2))
+          return false;
+        if (!this.ouch2.equals(that.ouch2))
+          return false;
+      }
+
       return true;
     }
 
@@ -7620,6 +7848,16 @@ import org.slf4j.LoggerFactory;
           return lastComparison;
         }
       }
+      lastComparison = Boolean.valueOf(isSetOuch2()).compareTo(typedOther.isSetOuch2());
+      if (lastComparison != 0) {
+        return lastComparison;
+      }
+      if (isSetOuch2()) {
+        lastComparison = org.apache.thrift.TBaseHelper.compareTo(this.ouch2, typedOther.ouch2);
+        if (lastComparison != 0) {
+          return lastComparison;
+        }
+      }
       return 0;
     }
 
@@ -7647,6 +7885,14 @@ import org.slf4j.LoggerFactory;
         org.apache.thrift.TBaseHelper.toString(this.success, sb);
       }
       first = false;
+      if (!first) sb.append(", ");
+      sb.append("ouch2:");
+      if (this.ouch2 == null) {
+        sb.append("null");
+      } else {
+        sb.append(this.ouch2);
+      }
+      first = false;
       sb.append(")");
       return sb.toString();
     }
@@ -7698,6 +7944,15 @@ import org.slf4j.LoggerFactory;
                 org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
               }
               break;
+            case 1: // OUCH2
+              if (schemeField.type == org.apache.thrift.protocol.TType.STRUCT) {
+                struct.ouch2 = new AccumuloSecurityException();
+                struct.ouch2.read(iprot);
+                struct.setOuch2IsSet(true);
+              } else { 
+                org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
+              }
+              break;
             default:
               org.apache.thrift.protocol.TProtocolUtil.skip(iprot, schemeField.type);
           }
@@ -7718,6 +7973,11 @@ import org.slf4j.LoggerFactory;
           oprot.writeBinary(struct.success);
           oprot.writeFieldEnd();
         }
+        if (struct.ouch2 != null) {
+          oprot.writeFieldBegin(OUCH2_FIELD_DESC);
+          struct.ouch2.write(oprot);
+          oprot.writeFieldEnd();
+        }
         oprot.writeFieldStop();
         oprot.writeStructEnd();
       }
@@ -7739,20 +7999,31 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetSuccess()) {
           optionals.set(0);
         }
-        oprot.writeBitSet(optionals, 1);
+        if (struct.isSetOuch2()) {
+          optionals.set(1);
+        }
+        oprot.writeBitSet(optionals, 2);
         if (struct.isSetSuccess()) {
           oprot.writeBinary(struct.success);
         }
+        if (struct.isSetOuch2()) {
+          struct.ouch2.write(oprot);
+        }
       }
 
       @Override
       public void read(org.apache.thrift.protocol.TProtocol prot, login_result struct) throws org.apache.thrift.TException {
         TTupleProtocol iprot = (TTupleProtocol) prot;
-        BitSet incoming = iprot.readBitSet(1);
+        BitSet incoming = iprot.readBitSet(2);
         if (incoming.get(0)) {
           struct.success = iprot.readBinary();
           struct.setSuccessIsSet(true);
         }
+        if (incoming.get(1)) {
+          struct.ouch2 = new AccumuloSecurityException();
+          struct.ouch2.read(iprot);
+          struct.setOuch2IsSet(true);
+        }
       }
     }
 
@@ -9475,13 +9746,13 @@ import org.slf4j.LoggerFactory;
             case 3: // SPLITS
               if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                 {
-                  org.apache.thrift.protocol.TSet _set114 = iprot.readSetBegin();
-                  struct.splits = new HashSet<ByteBuffer>(2*_set114.size);
-                  for (int _i115 = 0; _i115 < _set114.size; ++_i115)
+                  org.apache.thrift.protocol.TSet _set124 = iprot.readSetBegin();
+                  struct.splits = new HashSet<ByteBuffer>(2*_set124.size);
+                  for (int _i125 = 0; _i125 < _set124.size; ++_i125)
                   {
-                    ByteBuffer _elem116; // required
-                    _elem116 = iprot.readBinary();
-                    struct.splits.add(_elem116);
+                    ByteBuffer _elem126; // required
+                    _elem126 = iprot.readBinary();
+                    struct.splits.add(_elem126);
                   }
                   iprot.readSetEnd();
                 }
@@ -9519,9 +9790,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SPLITS_FIELD_DESC);
           {
             oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.splits.size()));
-            for (ByteBuffer _iter117 : struct.splits)
+            for (ByteBuffer _iter127 : struct.splits)
             {
-              oprot.writeBinary(_iter117);
+              oprot.writeBinary(_iter127);
             }
             oprot.writeSetEnd();
           }
@@ -9564,9 +9835,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetSplits()) {
           {
             oprot.writeI32(struct.splits.size());
-            for (ByteBuffer _iter118 : struct.splits)
+            for (ByteBuffer _iter128 : struct.splits)
             {
-              oprot.writeBinary(_iter118);
+              oprot.writeBinary(_iter128);
             }
           }
         }
@@ -9586,13 +9857,13 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(2)) {
           {
-            org.apache.thrift.protocol.TSet _set119 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.splits = new HashSet<ByteBuffer>(2*_set119.size);
-            for (int _i120 = 0; _i120 < _set119.size; ++_i120)
+            org.apache.thrift.protocol.TSet _set129 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.splits = new HashSet<ByteBuffer>(2*_set129.size);
+            for (int _i130 = 0; _i130 < _set129.size; ++_i130)
             {
-              ByteBuffer _elem121; // required
-              _elem121 = iprot.readBinary();
-              struct.splits.add(_elem121);
+              ByteBuffer _elem131; // required
+              _elem131 = iprot.readBinary();
+              struct.splits.add(_elem131);
             }
           }
           struct.setSplitsIsSet(true);
@@ -10741,13 +11012,13 @@ import org.slf4j.LoggerFactory;
             case 4: // SCOPES
               if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                 {
-                  org.apache.thrift.protocol.TSet _set122 = iprot.readSetBegin();
-                  struct.scopes = new HashSet<IteratorScope>(2*_set122.size);
-                  for (int _i123 = 0; _i123 < _set122.size; ++_i123)
+                  org.apache.thrift.protocol.TSet _set132 = iprot.readSetBegin();
+                  struct.scopes = new HashSet<IteratorScope>(2*_set132.size);
+                  for (int _i133 = 0; _i133 < _set132.size; ++_i133)
                   {
-                    IteratorScope _elem124; // required
-                    _elem124 = IteratorScope.findByValue(iprot.readI32());
-                    struct.scopes.add(_elem124);
+                    IteratorScope _elem134; // required
+                    _elem134 = IteratorScope.findByValue(iprot.readI32());
+                    struct.scopes.add(_elem134);
                   }
                   iprot.readSetEnd();
                 }
@@ -10790,9 +11061,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SCOPES_FIELD_DESC);
           {
             oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, struct.scopes.size()));
-            for (IteratorScope _iter125 : struct.scopes)
+            for (IteratorScope _iter135 : struct.scopes)
             {
-              oprot.writeI32(_iter125.getValue());
+              oprot.writeI32(_iter135.getValue());
             }
             oprot.writeSetEnd();
           }
@@ -10841,9 +11112,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetScopes()) {
           {
             oprot.writeI32(struct.scopes.size());
-            for (IteratorScope _iter126 : struct.scopes)
+            for (IteratorScope _iter136 : struct.scopes)
             {
-              oprot.writeI32(_iter126.getValue());
+              oprot.writeI32(_iter136.getValue());
             }
           }
         }
@@ -10868,13 +11139,13 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(3)) {
           {
-            org.apache.thrift.protocol.TSet _set127 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
-            struct.scopes = new HashSet<IteratorScope>(2*_set127.size);
-            for (int _i128 = 0; _i128 < _set127.size; ++_i128)
+            org.apache.thrift.protocol.TSet _set137 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
+            struct.scopes = new HashSet<IteratorScope>(2*_set137.size);
+            for (int _i138 = 0; _i138 < _set137.size; ++_i138)
             {
-              IteratorScope _elem129; // required
-              _elem129 = IteratorScope.findByValue(iprot.readI32());
-              struct.scopes.add(_elem129);
+              IteratorScope _elem139; // required
+              _elem139 = IteratorScope.findByValue(iprot.readI32());
+              struct.scopes.add(_elem139);
             }
           }
           struct.setScopesIsSet(true);
@@ -12023,13 +12294,13 @@ import org.slf4j.LoggerFactory;
             case 4: // SCOPES
               if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                 {
-                  org.apache.thrift.protocol.TSet _set130 = iprot.readSetBegin();
-                  struct.scopes = new HashSet<IteratorScope>(2*_set130.size);
-                  for (int _i131 = 0; _i131 < _set130.size; ++_i131)
+                  org.apache.thrift.protocol.TSet _set140 = iprot.readSetBegin();
+                  struct.scopes = new HashSet<IteratorScope>(2*_set140.size);
+                  for (int _i141 = 0; _i141 < _set140.size; ++_i141)
                   {
-                    IteratorScope _elem132; // required
-                    _elem132 = IteratorScope.findByValue(iprot.readI32());
-                    struct.scopes.add(_elem132);
+                    IteratorScope _elem142; // required
+                    _elem142 = IteratorScope.findByValue(iprot.readI32());
+                    struct.scopes.add(_elem142);
                   }
                   iprot.readSetEnd();
                 }
@@ -12072,9 +12343,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(SCOPES_FIELD_DESC);
           {
             oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, struct.scopes.size()));
-            for (IteratorScope _iter133 : struct.scopes)
+            for (IteratorScope _iter143 : struct.scopes)
             {
-              oprot.writeI32(_iter133.getValue());
+              oprot.writeI32(_iter143.getValue());
             }
             oprot.writeSetEnd();
           }
@@ -12123,9 +12394,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetScopes()) {
           {
             oprot.writeI32(struct.scopes.size());
-            for (IteratorScope _iter134 : struct.scopes)
+            for (IteratorScope _iter144 : struct.scopes)
             {
-              oprot.writeI32(_iter134.getValue());
+              oprot.writeI32(_iter144.getValue());
             }
           }
         }
@@ -12150,13 +12421,13 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(3)) {
           {
-            org.apache.thrift.protocol.TSet _set135 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
-            struct.scopes = new HashSet<IteratorScope>(2*_set135.size);
-            for (int _i136 = 0; _i136 < _set135.size; ++_i136)
+            org.apache.thrift.protocol.TSet _set145 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.I32, iprot.readI32());
+            struct.scopes = new HashSet<IteratorScope>(2*_set145.size);
+            for (int _i146 = 0; _i146 < _set145.size; ++_i146)
             {
-              IteratorScope _elem137; // required
-              _elem137 = IteratorScope.findByValue(iprot.readI32());
-              struct.scopes.add(_elem137);
+              IteratorScope _elem147; // required
+              _elem147 = IteratorScope.findByValue(iprot.readI32());
+              struct.scopes.add(_elem147);
             }
           }
           struct.setScopesIsSet(true);
@@ -14207,15 +14478,15 @@ import org.slf4j.LoggerFactory;
             case 5: // PROPERTIES_TO_SET
               if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                 {
-                  org.apache.thrift.protocol.TMap _map138 = iprot.readMapBegin();
-                  struct.propertiesToSet = new HashMap<String,String>(2*_map138.size);
-                  for (int _i139 = 0; _i139 < _map138.size; ++_i139)
+                  org.apache.thrift.protocol.TMap _map148 = iprot.readMapBegin();
+                  struct.propertiesToSet = new HashMap<String,String>(2*_map148.size);
+                  for (int _i149 = 0; _i149 < _map148.size; ++_i149)
                   {
-                    String _key140; // required
-                    String _val141; // required
-                    _key140 = iprot.readString();
-                    _val141 = iprot.readString();
-                    struct.propertiesToSet.put(_key140, _val141);
+                    String _key150; // required
+                    String _val151; // required
+                    _key150 = iprot.readString();
+                    _val151 = iprot.readString();
+                    struct.propertiesToSet.put(_key150, _val151);
                   }
                   iprot.readMapEnd();
                 }
@@ -14227,13 +14498,13 @@ import org.slf4j.LoggerFactory;
             case 6: // PROPERTIES_TO_EXCLUDE
               if (schemeField.type == org.apache.thrift.protocol.TType.SET) {
                 {
-                  org.apache.thrift.protocol.TSet _set142 = iprot.readSetBegin();
-                  struct.propertiesToExclude = new HashSet<String>(2*_set142.size);
-                  for (int _i143 = 0; _i143 < _set142.size; ++_i143)
+                  org.apache.thrift.protocol.TSet _set152 = iprot.readSetBegin();
+                  struct.propertiesToExclude = new HashSet<String>(2*_set152.size);
+                  for (int _i153 = 0; _i153 < _set152.size; ++_i153)
                   {
-                    String _elem144; // required
-                    _elem144 = iprot.readString();
-                    struct.propertiesToExclude.add(_elem144);
+                    String _elem154; // required
+                    _elem154 = iprot.readString();
+                    struct.propertiesToExclude.add(_elem154);
                   }
                   iprot.readSetEnd();
                 }
@@ -14279,10 +14550,10 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(PROPERTIES_TO_SET_FIELD_DESC);
           {
             oprot.writeMapBegin(new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, struct.propertiesToSet.size()));
-            for (Map.Entry<String, String> _iter145 : struct.propertiesToSet.entrySet())
+            for (Map.Entry<String, String> _iter155 : struct.propertiesToSet.entrySet())
             {
-              oprot.writeString(_iter145.getKey());
-              oprot.writeString(_iter145.getValue());
+              oprot.writeString(_iter155.getKey());
+              oprot.writeString(_iter155.getValue());
             }
             oprot.writeMapEnd();
           }
@@ -14292,9 +14563,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(PROPERTIES_TO_EXCLUDE_FIELD_DESC);
           {
             oprot.writeSetBegin(new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, struct.propertiesToExclude.size()));
-            for (String _iter146 : struct.propertiesToExclude)
+            for (String _iter156 : struct.propertiesToExclude)
             {
-              oprot.writeString(_iter146);
+              oprot.writeString(_iter156);
             }
             oprot.writeSetEnd();
           }
@@ -14352,19 +14623,19 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetPropertiesToSet()) {
           {
             oprot.writeI32(struct.propertiesToSet.size());
-            for (Map.Entry<String, String> _iter147 : struct.propertiesToSet.entrySet())
+            for (Map.Entry<String, String> _iter157 : struct.propertiesToSet.entrySet())
             {
-              oprot.writeString(_iter147.getKey());
-              oprot.writeString(_iter147.getValue());
+              oprot.writeString(_iter157.getKey());
+              oprot.writeString(_iter157.getValue());
             }
           }
         }
         if (struct.isSetPropertiesToExclude()) {
           {
             oprot.writeI32(struct.propertiesToExclude.size());
-            for (String _iter148 : struct.propertiesToExclude)
+            for (String _iter158 : struct.propertiesToExclude)
             {
-              oprot.writeString(_iter148);
+              oprot.writeString(_iter158);
             }
           }
         }
@@ -14392,28 +14663,28 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(4)) {
           {
-            org.apache.thrift.protocol.TMap _map149 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.propertiesToSet = new HashMap<String,String>(2*_map149.size);
-            for (int _i150 = 0; _i150 < _map149.size; ++_i150)
+            org.apache.thrift.protocol.TMap _map159 = new org.apache.thrift.protocol.TMap(org.apache.thrift.protocol.TType.STRING, org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.propertiesToSet = new HashMap<String,String>(2*_map159.size);
+            for (int _i160 = 0; _i160 < _map159.size; ++_i160)
             {
-              String _key151; // required
-              String _val152; // required
-              _key151 = iprot.readString();
-              _val152 = iprot.readString();
-              struct.propertiesToSet.put(_key151, _val152);
+              String _key161; // required
+              String _val162; // required
+              _key161 = iprot.readString();
+              _val162 = iprot.readString();
+              struct.propertiesToSet.put(_key161, _val162);
             }
           }
           struct.setPropertiesToSetIsSet(true);
         }
         if (incoming.get(5)) {
           {
-            org.apache.thrift.protocol.TSet _set153 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
-            struct.propertiesToExclude = new HashSet<String>(2*_set153.size);
-            for (int _i154 = 0; _i154 < _set153.size; ++_i154)
+            org.apache.thrift.protocol.TSet _set163 = new org.apache.thrift.protocol.TSet(org.apache.thrift.protocol.TType.STRING, iprot.readI32());
+            struct.propertiesToExclude = new HashSet<String>(2*_set163.size);
+            for (int _i164 = 0; _i164 < _set163.size; ++_i164)
             {
-              String _elem155; // required
-              _elem155 = iprot.readString();
-              struct.propertiesToExclude.add(_elem155);
+              String _elem165; // required
+              _elem165 = iprot.readString();
+              struct.propertiesToExclude.add(_elem165);
             }
           }
           struct.setPropertiesToExcludeIsSet(true);
@@ -15917,14 +16188,14 @@ import org.slf4j.LoggerFactory;
             case 5: // ITERATORS
               if (schemeField.type == org.apache.thrift.protocol.TType.LIST) {
                 {
-                  org.apache.thrift.protocol.TList _list156 = iprot.readListBegin();
-                  struct.iterators = new ArrayList<IteratorSetting>(_list156.size);
-                  for (int _i157 = 0; _i157 < _list156.size; ++_i157)
+                  org.apache.thrift.protocol.TList _list166 = iprot.readListBegin();
+                  struct.iterators = new ArrayList<IteratorSetting>(_list166.size);
+                  for (int _i167 = 0; _i167 < _list166.size; ++_i167)
                   {
-                    IteratorSetting _elem158; // required
-                    _elem158 = new IteratorSetting();
-                    _elem158.read(iprot);
-                    struct.iterators.add(_elem158);
+                    IteratorSetting _elem168; // required
+                    _elem168 = new IteratorSetting();
+                    _elem168.read(iprot);
+                    struct.iterators.add(_elem168);
                   }
                   iprot.readListEnd();
                 }
@@ -15988,9 +16259,9 @@ import org.slf4j.LoggerFactory;
           oprot.writeFieldBegin(ITERATORS_FIELD_DESC);
           {
             oprot.writeListBegin(new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, struct.iterators.size()));
-            for (IteratorSetting _iter159 : struct.iterators)
+            for (IteratorSetting _iter169 : struct.iterators)
             {
-              _iter159.write(oprot);
+              _iter169.write(oprot);
             }
             oprot.writeListEnd();
           }
@@ -16057,9 +16328,9 @@ import org.slf4j.LoggerFactory;
         if (struct.isSetIterators()) {
           {
             oprot.writeI32(struct.iterators.size());
-            for (IteratorSetting _iter160 : struct.iterators)
+            for (IteratorSetting _iter170 : struct.iterators)
             {
-              _iter160.write(oprot);
+              _iter170.write(oprot);
             }
           }
         }
@@ -16093,14 +16364,14 @@ import org.slf4j.LoggerFactory;
         }
         if (incoming.get(4)) {
           {
-            org.apache.thrift.protocol.TList _list161 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
-            struct.iterators = new ArrayList<IteratorSetting>(_list161.size);
-            for (int _i162 = 0; _i162 < _list161.size; ++_i162)
+            org.apache.thrift.protocol.TList _list171 = new org.apache.thrift.protocol.TList(org.apache.thrift.protocol.TType.STRUCT, iprot.readI32());
+            struct.iterators = new ArrayList<IteratorSetting>(_list171.size);
+            for (int _i172 = 0; _i172 < _list171.size; ++_i172)
             {
-              IteratorSetting _elem163; // required
-              _elem163 = new IteratorSetting();
-              _elem163.read(iprot);
-              struct.iterators.add(_elem163);
+              IteratorSetting _elem173; // required
+              _elem173 = new IteratorSetting();
+              _elem173.read(iprot);
+              struct.iterators.add(_elem173);
             }
           }
           struct.setIteratorsIsSet(true);
@@ -24519,25 +24790,25 @@ import org.slf4j.LoggerFactory;
             case 0: // SUCCESS
               if (schemeField.type == org.apache.thrift.protocol.TType.MAP) {
                 {
-                  org.apache.thrift.protocol.TMap _map164 = iprot.readMapBegin();
-                  struct.success = new HashMap<String,Set<String>>(2*_map164.size);
-                  for (int _i165 = 0; _i165 < _map164.size; ++_i165)
+                  org.apache.thrift.protocol.TMap _map174 = iprot.readMapBegin();
+                  struct.success = new HashMap<String,Set<String>>(2*_map174.size);
+                  for (int _i175 = 0; _i175 < _map174.size; ++_i175)
                   {
-                    String _key166; // required
-                    Set<String> _val167; // required
-                    _key166 = iprot.readString();
+                    String _key176; // required
+                    Set<String> _val177; // required
+                    _key176 = iprot.readString();
                     {
-                      org.apache.thrift.protocol.TSet _set168 = iprot.readSetBegin();
-                      _val167 = new HashSet<String>(2*_set168.size);
-                      for (int _i169 = 0; _i169 < _set168.size; ++_i169)
+                      org.apache.thrift.protocol.TSet _set178 = iprot.readSetBegin();
+                      _val177 = new HashSet<String>(2*_set178.size);
+                      for (int _i179 = 0; _i179 < _set178.size; ++_i179)
                       {
-                        String _elem170; // required
-                        _elem170 = iprot.readString();
-                        _val167.add(_elem170);
+                        String _elem180; // required
+                        _elem180 = iprot.readString();
+                        _val177.add(_elem180);

[... 3471 lines stripped ...]