org.apache.hadoop.hive.metastore
Class TUGIBasedProcessor<I extends ThriftHiveMetastore.Iface>

java.lang.Object
  extended by org.apache.thrift.TBaseProcessor<I>
      extended by com.facebook.fb303.FacebookService.Processor<I>
          extended by org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Processor<ThriftHiveMetastore.Iface>
              extended by org.apache.hadoop.hive.metastore.TSetIpAddressProcessor<ThriftHiveMetastore.Iface>
                  extended by org.apache.hadoop.hive.metastore.TUGIBasedProcessor<I>
All Implemented Interfaces:
org.apache.thrift.TProcessor

public class TUGIBasedProcessor<I extends ThriftHiveMetastore.Iface>
extends TSetIpAddressProcessor<ThriftHiveMetastore.Iface>

TUGIBasedProcessor is used in unsecure mode for thrift metastore client server communication. This processor checks whether the first rpc call after connection is set up is set_ugi() through which client sends ugi to server. Processor then perform all subsequent rpcs on the connection using ugi.doAs() so all actions are performed in client user context. Note that old clients will never call set_ugi() and thus ugi will never be received on server side, in which case server exhibits previous behavior and continues as usual.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.hadoop.hive.metastore.api.ThriftHiveMetastore.Processor
ThriftHiveMetastore.Processor.add_index<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.add_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.add_partition_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.add_partitions<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_database<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_index<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_partition_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_partitions<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_table<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.alter_table_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.append_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.append_partition_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.append_partition_by_name_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.append_partition_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.cancel_delegation_token<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.create_database<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.create_role<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.create_table<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.create_table_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.create_type<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.delete_partition_column_statistics<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.delete_table_column_statistics<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_database<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_index_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_partition_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_partition_by_name_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_partition_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_role<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_table<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_table_with_environment_context<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.drop_type<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.exchange_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_all_databases<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_all_tables<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_config_value<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_database<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_databases<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_delegation_token<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_fields<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_index_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_index_names<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_indexes<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition_column_statistics<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition_names<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition_names_ps<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partition_with_auth<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions_by_filter<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions_by_names<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions_ps<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions_ps_with_auth<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_partitions_with_auth<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_privilege_set<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_role_names<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_schema<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_table<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_table_column_statistics<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_table_names_by_filter<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_table_objects_by_name<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_tables<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_type<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.get_type_all<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.grant_privileges<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.grant_role<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.isPartitionMarkedForEvent<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.list_privileges<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.list_roles<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.markPartitionForEvent<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.partition_name_has_valid_characters<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.partition_name_to_spec<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.partition_name_to_vals<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.rename_partition<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.renew_delegation_token<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.revoke_privileges<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.revoke_role<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.set_ugi<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.update_partition_column_statistics<I extends ThriftHiveMetastore.Iface>, ThriftHiveMetastore.Processor.update_table_column_statistics<I extends ThriftHiveMetastore.Iface>
 
Nested classes/interfaces inherited from class com.facebook.fb303.FacebookService.Processor
com.facebook.fb303.FacebookService.Processor.aliveSince<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getCounter<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getCounters<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getCpuProfile<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getName<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getOption<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getOptions<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getStatus<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getStatusDetails<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.getVersion<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.reinitialize<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.setOption<I extends com.facebook.fb303.FacebookService.Iface>, com.facebook.fb303.FacebookService.Processor.shutdown<I extends com.facebook.fb303.FacebookService.Iface>
 
Constructor Summary
TUGIBasedProcessor(I iface)
           
 
Method Summary
 boolean process(org.apache.thrift.protocol.TProtocol in, org.apache.thrift.protocol.TProtocol out)
           
protected  void setIpAddress(org.apache.thrift.protocol.TProtocol in)
           
 
Methods inherited from class org.apache.hadoop.hive.metastore.TSetIpAddressProcessor
setIpAddress
 
Methods inherited from class org.apache.thrift.TBaseProcessor
getProcessMapView
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

TUGIBasedProcessor

public TUGIBasedProcessor(I iface)
                   throws SecurityException,
                          NoSuchFieldException,
                          IllegalArgumentException,
                          IllegalAccessException,
                          NoSuchMethodException,
                          InvocationTargetException
Throws:
SecurityException
NoSuchFieldException
IllegalArgumentException
IllegalAccessException
NoSuchMethodException
InvocationTargetException
Method Detail

process

public boolean process(org.apache.thrift.protocol.TProtocol in,
                       org.apache.thrift.protocol.TProtocol out)
                throws org.apache.thrift.TException
Specified by:
process in interface org.apache.thrift.TProcessor
Overrides:
process in class TSetIpAddressProcessor<ThriftHiveMetastore.Iface>
Throws:
org.apache.thrift.TException

setIpAddress

protected void setIpAddress(org.apache.thrift.protocol.TProtocol in)
Overrides:
setIpAddress in class TSetIpAddressProcessor<ThriftHiveMetastore.Iface>


Copyright © 2012 The Apache Software Foundation