public class org.apache.hive.hcatalog.templeton.SecureProxySupport extends java.lang.Object
{
private org.apache.hadoop.fs.Path tokenPath;
public static final java.lang.String HCAT_SERVICE;
public static final java.lang.String HIVE_SERVICE;
private final boolean isEnabled;
private java.lang.String user;
private static final org.slf4j.Logger LOG;
public void <init>()
{
boolean v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
specialinvoke v.<java.lang.Object: void <init>()>();
v = staticinvoke <org.apache.hadoop.security.UserGroupInformation: boolean isSecurityEnabled()>();
v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: boolean isEnabled> = v;
return;
}
public org.apache.hadoop.fs.Path getTokenPath()
{
org.apache.hadoop.fs.Path v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
return v;
}
public java.lang.String getHcatServiceStr()
{
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
return "hcat";
}
public org.apache.hadoop.fs.Path open(java.lang.String, org.apache.hadoop.conf.Configuration) throws java.io.IOException, java.lang.InterruptedException
{
org.apache.hadoop.io.Text v;
org.apache.hadoop.conf.Configuration v;
org.apache.hadoop.security.token.Token[] v;
org.apache.hadoop.fs.Path v, v, v;
java.lang.String v, v, v;
java.net.URI v;
boolean v;
org.slf4j.Logger v;
java.io.IOException v;
org.apache.hadoop.security.token.Token v;
java.io.File v;
java.lang.Exception v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: java.lang.String;
v := @parameter: org.apache.hadoop.conf.Configuration;
virtualinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: void close()>();
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: boolean isEnabled>;
if v == 0 goto label;
v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: java.lang.String user> = v;
v = staticinvoke <java.io.File: java.io.File createTempFile(java.lang.String,java.lang.String)>("templeton", null);
v = new org.apache.hadoop.fs.Path;
v = virtualinvoke v.<java.io.File: java.net.URI toURI()>();
specialinvoke v.<org.apache.hadoop.fs.Path: void <init>(java.net.URI)>(v);
v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath> = v;
v = specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.security.token.Token[] getFSDelegationToken(java.lang.String,org.apache.hadoop.conf.Configuration)>(v, v);
label:
v = specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: java.lang.String buildHcatDelegationToken(java.lang.String)>(v);
label:
goto label;
label:
v := @caughtexception;
v = new java.io.IOException;
specialinvoke v.<java.io.IOException: void <init>(java.lang.Throwable)>(v);
throw v;
label:
if v != null goto label;
v = <org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("open(\u) token=null");
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String)>(v);
label:
v = new org.apache.hadoop.security.token.Token;
specialinvoke v.<org.apache.hadoop.security.token.Token: void <init>()>();
virtualinvoke v.<org.apache.hadoop.security.token.Token: void decodeFromUrlString(java.lang.String)>(v);
v = new org.apache.hadoop.io.Text;
specialinvoke v.<org.apache.hadoop.io.Text: void <init>(java.lang.String)>("hcat");
virtualinvoke v.<org.apache.hadoop.security.token.Token: void setService(org.apache.hadoop.io.Text)>(v);
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: void writeProxyDelegationTokens(org.apache.hadoop.security.token.Token[],org.apache.hadoop.security.token.Token,org.apache.hadoop.conf.Configuration,java.lang.String,org.apache.hadoop.fs.Path)>(v, v, v, v, v);
label:
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
return v;
catch java.lang.Exception from label to label with label;
}
public void close()
{
java.net.URISyntaxException v;
org.apache.hadoop.fs.Path v, v, v, v, v;
java.lang.String v, v, v;
java.net.URI v, v;
boolean v;
org.slf4j.Logger v;
java.io.File v, v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
if v == null goto label;
v = new java.io.File;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
v = virtualinvoke v.<org.apache.hadoop.fs.Path: java.net.URI toUri()>();
specialinvoke v.<java.io.File: void <init>(java.net.URI)>(v);
virtualinvoke v.<java.io.File: boolean delete()>();
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
v = virtualinvoke v.<org.apache.hadoop.fs.Path: org.apache.hadoop.fs.Path getParent()>();
v = <java.io.File: java.lang.String separator>;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath>;
v = virtualinvoke v.<org.apache.hadoop.fs.Path: java.lang.String getName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hadoop.fs.Path,java.lang.String,java.lang.String)>(v, v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001\u.\u.crc");
label:
v = new java.io.File;
v = new java.net.URI;
specialinvoke v.<java.net.URI: void <init>(java.lang.String)>(v);
specialinvoke v.<java.io.File: void <init>(java.net.URI)>(v);
v = virtualinvoke v.<java.io.File: boolean exists()>();
if v == 0 goto label;
virtualinvoke v.<java.io.File: boolean delete()>();
label:
goto label;
label:
v := @caughtexception;
v = <org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void error(java.lang.String,java.lang.Throwable)>("Failed to delete token crc file.", v);
label:
v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path tokenPath> = null;
label:
return;
catch java.net.URISyntaxException from label to label with label;
}
public void addEnv(java.util.Map)
{
java.util.Map v;
org.apache.hadoop.fs.Path v;
java.lang.String v;
java.net.URI v;
boolean v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: java.util.Map;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: boolean isEnabled>;
if v == 0 goto label;
v = virtualinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.apache.hadoop.fs.Path getTokenPath()>();
v = virtualinvoke v.<org.apache.hadoop.fs.Path: java.net.URI toUri()>();
v = virtualinvoke v.<java.net.URI: java.lang.String getPath()>();
interfaceinvoke v.<java.util.Map: java.lang.Object put(java.lang.Object,java.lang.Object)>("HADOOP_TOKEN_FILE_LOCATION", v);
label:
return;
}
public void addArgs(java.util.List)
{
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
java.util.List v;
org.apache.hadoop.hive.conf.HiveConf$ConfVars v;
java.lang.String v, v, v, v;
boolean v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: java.util.List;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: boolean isEnabled>;
if v == 0 goto label;
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-D");
v = <org.apache.hadoop.hive.conf.HiveConf$ConfVars: org.apache.hadoop.hive.conf.HiveConf$ConfVars METASTORE_TOKEN_SIGNATURE>;
v = virtualinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: java.lang.String getHcatServiceStr()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (org.apache.hadoop.hive.conf.HiveConf$ConfVars,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("\u0001=\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>("-D");
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport: java.lang.String user>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String)>(v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("proxy.user.name=\u0001");
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
label:
return;
}
private org.apache.hadoop.security.token.Token[] getFSDelegationToken(java.lang.String, org.apache.hadoop.conf.Configuration) throws java.io.IOException, java.lang.InterruptedException
{
org.slf4j.Logger v;
org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
org.apache.hive.hcatalog.templeton.SecureProxySupport$1 v;
org.apache.hadoop.security.UserGroupInformation v, v;
org.apache.hadoop.conf.Configuration v;
org.apache.hadoop.security.token.Token[] v;
java.lang.String v, v, v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: java.lang.String;
v := @parameter: org.apache.hadoop.conf.Configuration;
v = <org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.hadoop.security.UserGroupInformation: org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("user: \u loginUser: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = staticinvoke <org.apache.hive.hcatalog.templeton.UgiFactory: org.apache.hadoop.security.UserGroupInformation getUgi(java.lang.String)>(v);
v = new org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper;
specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper: void <init>()>();
v = new org.apache.hive.hcatalog.templeton.SecureProxySupport$1;
specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$1: void <init>(org.apache.hive.hcatalog.templeton.SecureProxySupport,org.apache.hadoop.conf.Configuration,org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper,org.apache.hadoop.security.UserGroupInformation)>(v, v, v, v);
virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.Object doAs(java.security.PrivilegedExceptionAction)>(v);
staticinvoke <org.apache.hadoop.fs.FileSystem: void closeAllForUGI(org.apache.hadoop.security.UserGroupInformation)>(v);
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper: org.apache.hadoop.security.token.Token[] tokens>;
return v;
}
private static void collectTokens(org.apache.hadoop.fs.FileSystem, org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper, org.apache.hadoop.security.Credentials, java.lang.String) throws java.io.IOException
{
java.lang.Object[] v;
org.apache.hadoop.fs.FileSystem v;
org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper v;
int v;
org.apache.hadoop.security.token.Token[] v, v;
java.lang.String v;
org.apache.hadoop.security.Credentials v;
v := @parameter: org.apache.hadoop.fs.FileSystem;
v := @parameter: org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper;
v := @parameter: org.apache.hadoop.security.Credentials;
v := @parameter: java.lang.String;
v = virtualinvoke v.<org.apache.hadoop.fs.FileSystem: org.apache.hadoop.security.token.Token[] addDelegationTokens(java.lang.String,org.apache.hadoop.security.Credentials)>(v, v);
if v == null goto label;
v = lengthof v;
if v <= 0 goto label;
v = v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper: org.apache.hadoop.security.token.Token[] tokens>;
v = staticinvoke <org.apache.commons.lang.ArrayUtils: java.lang.Object[] addAll(java.lang.Object[],java.lang.Object[])>(v, v);
v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$TokenWrapper: org.apache.hadoop.security.token.Token[] tokens> = v;
label:
return;
}
private void writeProxyDelegationTokens(org.apache.hadoop.security.token.Token[], org.apache.hadoop.security.token.Token, org.apache.hadoop.conf.Configuration, java.lang.String, org.apache.hadoop.fs.Path) throws java.io.IOException, java.lang.InterruptedException
{
org.slf4j.Logger v;
org.apache.hadoop.security.token.Token v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
org.apache.hive.hcatalog.templeton.SecureProxySupport$2 v;
org.apache.hadoop.security.UserGroupInformation v, v;
org.apache.hadoop.conf.Configuration v;
org.apache.hadoop.security.token.Token[] v;
org.apache.hadoop.fs.Path v;
java.lang.String v, v, v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: org.apache.hadoop.security.token.Token[];
v := @parameter: org.apache.hadoop.security.token.Token;
v := @parameter: org.apache.hadoop.conf.Configuration;
v := @parameter: java.lang.String;
v := @parameter: org.apache.hadoop.fs.Path;
v = <org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.hadoop.security.UserGroupInformation: org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("user: \u loginUser: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = staticinvoke <org.apache.hive.hcatalog.templeton.UgiFactory: org.apache.hadoop.security.UserGroupInformation getUgi(java.lang.String)>(v);
v = new org.apache.hive.hcatalog.templeton.SecureProxySupport$2;
specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$2: void <init>(org.apache.hive.hcatalog.templeton.SecureProxySupport,org.apache.hadoop.security.token.Token[],org.apache.hadoop.security.token.Token,org.apache.hadoop.fs.Path,org.apache.hadoop.conf.Configuration)>(v, v, v, v, v);
virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.Object doAs(java.security.PrivilegedExceptionAction)>(v);
staticinvoke <org.apache.hadoop.fs.FileSystem: void closeAllForUGI(org.apache.hadoop.security.UserGroupInformation)>(v);
return;
}
private java.lang.String buildHcatDelegationToken(java.lang.String) throws java.io.IOException, java.lang.InterruptedException, org.apache.thrift.TException
{
org.slf4j.Logger v;
org.apache.hadoop.hive.conf.HiveConf v;
org.apache.hive.hcatalog.templeton.SecureProxySupport v;
org.apache.hadoop.hive.metastore.IMetaStoreClient v;
org.apache.hadoop.security.UserGroupInformation v, v;
org.apache.hive.hcatalog.templeton.SecureProxySupport$3 v;
java.lang.Object v;
java.lang.String v, v, v;
v := @this: org.apache.hive.hcatalog.templeton.SecureProxySupport;
v := @parameter: java.lang.String;
v = new org.apache.hadoop.hive.conf.HiveConf;
specialinvoke v.<org.apache.hadoop.hive.conf.HiveConf: void <init>()>();
v = staticinvoke <org.apache.hive.hcatalog.common.HCatUtil: org.apache.hadoop.hive.metastore.IMetaStoreClient getHiveMetastoreClient(org.apache.hadoop.hive.conf.HiveConf)>(v);
v = <org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG>;
v = staticinvoke <org.apache.hadoop.security.UserGroupInformation: org.apache.hadoop.security.UserGroupInformation getLoginUser()>();
v = virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.String getUserName()>();
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,java.lang.String)>(v, v) <java.lang.invoke.StringConcatFactory: java.lang.invoke.CallSite makeConcatWithConstants(java.lang.invoke.MethodHandles$Lookup,java.lang.String,java.lang.invoke.MethodType,java.lang.String,java.lang.Object[])>("user: \u loginUser: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String)>(v);
v = staticinvoke <org.apache.hive.hcatalog.templeton.UgiFactory: org.apache.hadoop.security.UserGroupInformation getUgi(java.lang.String)>(v);
v = new org.apache.hive.hcatalog.templeton.SecureProxySupport$3;
specialinvoke v.<org.apache.hive.hcatalog.templeton.SecureProxySupport$3: void <init>(org.apache.hive.hcatalog.templeton.SecureProxySupport,org.apache.hadoop.security.UserGroupInformation,org.apache.hadoop.hive.metastore.IMetaStoreClient,org.apache.hadoop.hive.conf.HiveConf)>(v, v, v, v);
v = virtualinvoke v.<org.apache.hadoop.security.UserGroupInformation: java.lang.Object doAs(java.security.PrivilegedExceptionAction)>(v);
staticinvoke <org.apache.hadoop.fs.FileSystem: void closeAllForUGI(org.apache.hadoop.security.UserGroupInformation)>(v);
return v;
}
static void <clinit>()
{
org.slf4j.Logger v;
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Lorg/apache/hive/hcatalog/templeton/SecureProxySupport;");
<org.apache.hive.hcatalog.templeton.SecureProxySupport: org.slf4j.Logger LOG> = v;
return;
}
}