public class oadd.org.apache.hadoop.security.LdapGroupsMapping extends java.lang.Object implements oadd.org.apache.hadoop.security.GroupMappingServiceProvider, oadd.org.apache.hadoop.conf.Configurable
{
public static final java.lang.String LDAP_CONFIG_PREFIX;
public static final java.lang.String LDAP_URL_KEY;
public static final java.lang.String LDAP_URL_DEFAULT;
public static final java.lang.String LDAP_USE_SSL_KEY;
public static final java.lang.Boolean LDAP_USE_SSL_DEFAULT;
public static final java.lang.String LDAP_KEYSTORE_KEY;
public static final java.lang.String LDAP_KEYSTORE_DEFAULT;
public static final java.lang.String LDAP_KEYSTORE_PASSWORD_KEY;
public static final java.lang.String LDAP_KEYSTORE_PASSWORD_DEFAULT;
public static final java.lang.String LDAP_KEYSTORE_PASSWORD_FILE_KEY;
public static final java.lang.String LDAP_KEYSTORE_PASSWORD_FILE_DEFAULT;
public static final java.lang.String LDAP_TRUSTSTORE_KEY;
public static final java.lang.String LDAP_TRUSTSTORE_PASSWORD_KEY;
public static final java.lang.String LDAP_TRUSTSTORE_PASSWORD_FILE_KEY;
public static final java.lang.String BIND_USER_KEY;
public static final java.lang.String BIND_USER_DEFAULT;
public static final java.lang.String BIND_PASSWORD_KEY;
public static final java.lang.String BIND_PASSWORD_DEFAULT;
public static final java.lang.String BIND_PASSWORD_FILE_KEY;
public static final java.lang.String BIND_PASSWORD_FILE_DEFAULT;
public static final java.lang.String BASE_DN_KEY;
public static final java.lang.String BASE_DN_DEFAULT;
public static final java.lang.String USER_BASE_DN_KEY;
public static final java.lang.String GROUP_BASE_DN_KEY;
public static final java.lang.String USER_SEARCH_FILTER_KEY;
public static final java.lang.String USER_SEARCH_FILTER_DEFAULT;
public static final java.lang.String GROUP_SEARCH_FILTER_KEY;
public static final java.lang.String GROUP_SEARCH_FILTER_DEFAULT;
public static final java.lang.String MEMBEROF_ATTR_KEY;
public static final java.lang.String MEMBEROF_ATTR_DEFAULT;
public static final java.lang.String GROUP_MEMBERSHIP_ATTR_KEY;
public static final java.lang.String GROUP_MEMBERSHIP_ATTR_DEFAULT;
public static final java.lang.String GROUP_NAME_ATTR_KEY;
public static final java.lang.String GROUP_NAME_ATTR_DEFAULT;
public static final java.lang.String GROUP_HIERARCHY_LEVELS_KEY;
public static final int GROUP_HIERARCHY_LEVELS_DEFAULT;
public static final java.lang.String POSIX_UID_ATTR_KEY;
public static final java.lang.String POSIX_UID_ATTR_DEFAULT;
public static final java.lang.String POSIX_GID_ATTR_KEY;
public static final java.lang.String POSIX_GID_ATTR_DEFAULT;
public static final java.lang.String POSIX_GROUP;
public static final java.lang.String POSIX_ACCOUNT;
public static final java.lang.String DIRECTORY_SEARCH_TIMEOUT;
public static final int DIRECTORY_SEARCH_TIMEOUT_DEFAULT;
public static final java.lang.String CONNECTION_TIMEOUT;
public static final int CONNECTION_TIMEOUT_DEFAULT;
public static final java.lang.String READ_TIMEOUT;
public static final int READ_TIMEOUT_DEFAULT;
public static final java.lang.String LDAP_NUM_ATTEMPTS_KEY;
public static final int LDAP_NUM_ATTEMPTS_DEFAULT;
public static final java.lang.String LDAP_NUM_ATTEMPTS_BEFORE_FAILOVER_KEY;
public static final int LDAP_NUM_ATTEMPTS_BEFORE_FAILOVER_DEFAULT;
public static final java.lang.String LDAP_CTX_FACTORY_CLASS_KEY;
public static final java.lang.Class LDAP_CTX_FACTORY_CLASS_DEFAULT;
private static final java.lang.String LDAP_SOCKET_FACTORY_ENV_KEY;
private static final org.slf4j.Logger LOG;
static final javax.naming.directory.SearchControls SEARCH_CONTROLS;
private javax.naming.directory.DirContext ctx;
private oadd.org.apache.hadoop.conf.Configuration conf;
private java.util.Iterator ldapUrls;
private java.lang.String currentLdapUrl;
private boolean useSsl;
private java.lang.String keystore;
private java.lang.String keystorePass;
private java.lang.String truststore;
private java.lang.String truststorePass;
private java.lang.String bindUser;
private java.lang.String bindPassword;
private java.lang.String userbaseDN;
private java.lang.String groupbaseDN;
private java.lang.String groupSearchFilter;
private java.lang.String userSearchFilter;
private java.lang.String memberOfAttr;
private java.lang.String groupMemberAttr;
private java.lang.String groupNameAttr;
private int groupHierarchyLevels;
private java.lang.String posixUidAttr;
private java.lang.String posixGidAttr;
private boolean isPosix;
private boolean useOneQuery;
private int numAttempts;
private int numAttemptsBeforeFailover;
private java.lang.Class ldapCxtFactoryClass;
public void <init>()
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
specialinvoke v.<java.lang.Object: void <init>()>();
return;
}
public synchronized java.util.List getGroups(java.lang.String)
{
java.lang.Object[] v;
javax.naming.NamingException v;
java.lang.Integer v, v;
int v, v, v, v, v, v;
java.lang.String v, v;
boolean v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
org.slf4j.Logger v, v;
java.util.List v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.lang.String;
v = 1;
v = 1;
label:
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int numAttempts>;
if v > v goto label;
label:
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int groupHierarchyLevels>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.List doGetGroups(java.lang.String,int)>(v, v);
label:
return v;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[5];
v[0] = v;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[1] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int numAttempts>;
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[2] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl>;
v[3] = v;
v[4] = v;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object[])>("Failed to get groups for user {} (attempt={}/{}) using {}. Exception: ", v);
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void trace(java.lang.String,java.lang.Throwable)>("TRACE", v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int numAttemptsBeforeFailover>;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean failover(int,int)>(v, v);
if v == 0 goto label;
v = 0;
label:
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext ctx> = null;
v = v + 1;
v = v + 1;
goto label;
label:
v = staticinvoke <java.util.Collections: java.util.List emptyList()>();
return v;
catch javax.naming.NamingException from label to label with label;
}
private java.lang.String getRelativeDistinguishedName(java.lang.String) throws javax.naming.NamingException
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
javax.naming.ldap.LdapName v;
javax.naming.NamingException v, v;
java.util.List v;
int v, v;
java.lang.Object v, v;
java.lang.String v, v, v, v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.lang.String;
v = new javax.naming.ldap.LdapName;
specialinvoke v.<javax.naming.ldap.LdapName: void <init>(java.lang.String)>(v);
v = virtualinvoke v.<javax.naming.ldap.LdapName: java.util.List getRdns()>();
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v == 0 goto label;
v = new javax.naming.NamingException;
specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>("DN is empty");
throw v;
label:
v = interfaceinvoke v.<java.util.List: int size()>();
v = v - 1;
v = interfaceinvoke v.<java.util.List: java.lang.Object get(int)>(v);
v = virtualinvoke v.<javax.naming.ldap.Rdn: java.lang.String getType()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr>;
v = virtualinvoke v.<java.lang.String: boolean equalsIgnoreCase(java.lang.String)>(v);
if v == 0 goto label;
v = virtualinvoke v.<javax.naming.ldap.Rdn: java.lang.Object getValue()>();
return v;
label:
v = new javax.naming.NamingException;
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[])>("Unable to find RDN: The DN \u is malformed.");
specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>(v);
throw v;
}
private javax.naming.NamingEnumeration lookupPosixGroup(javax.naming.directory.SearchResult, javax.naming.directory.DirContext) throws javax.naming.NamingException
{
java.lang.Object[] v;
javax.naming.NamingException v;
javax.naming.directory.SearchControls v;
javax.naming.directory.Attribute v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
javax.naming.directory.DirContext v;
javax.naming.directory.Attributes v, v;
javax.naming.NamingEnumeration v;
java.lang.Object v, v;
javax.naming.directory.SearchResult v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: javax.naming.directory.SearchResult;
v := @parameter: javax.naming.directory.DirContext;
v = null;
v = null;
v = virtualinvoke v.<javax.naming.directory.SearchResult: javax.naming.directory.Attributes getAttributes()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr>;
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
v = virtualinvoke v.<javax.naming.directory.SearchResult: javax.naming.directory.Attributes getAttributes()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixUidAttr>;
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
v = "";
if v != null goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr>;
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[])>("Can\'t find attribute \'\u0001\'.");
goto label;
label:
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
label:
if v != null goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixUidAttr>;
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[])>("Can\'t find attribute \'\u0001\'.");
goto label;
label:
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
label:
if v == null goto label;
if v == null goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupbaseDN>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupSearchFilter>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupMemberAttr>;
v = dynamicinvoke "makeConcatWithConstants" <java.lang.String (java.lang.String,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(|(\u0001={0})(\u0001={1})))");
v = newarray (java.lang.Object)[2];
v[0] = v;
v[1] = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.NamingEnumeration search(java.lang.String,java.lang.String,java.lang.Object[],javax.naming.directory.SearchControls)>(v, v, v, v);
return v;
label:
v = new javax.naming.NamingException;
v = virtualinvoke v.<javax.naming.directory.SearchResult: java.lang.String toString()>();
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[])>("The server does not support posixGroups semantics. Reason: \u Returned user object: \u0001");
specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>(v);
throw v;
}
private java.util.List lookupGroup(javax.naming.directory.SearchResult, javax.naming.directory.DirContext, int) throws javax.naming.NamingException
{
java.lang.Object[] v;
javax.naming.directory.SearchControls v;
java.util.ArrayList v, v, v;
java.util.HashSet v, v;
int v;
java.lang.String v, v, v, v, v;
boolean v, v, v, v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
javax.naming.directory.DirContext v;
javax.naming.NamingEnumeration v;
java.lang.Object v;
javax.naming.directory.SearchResult v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: javax.naming.directory.SearchResult;
v := @parameter: javax.naming.directory.DirContext;
v := @parameter: int;
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean isPosix>;
if v == 0 goto label;
v = specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.NamingEnumeration lookupPosixGroup(javax.naming.directory.SearchResult,javax.naming.directory.DirContext)>(v, v);
goto label;
label:
v = virtualinvoke v.<javax.naming.directory.SearchResult: java.lang.String getNameInNamespace()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupbaseDN>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupSearchFilter>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupMemberAttr>;
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[])>("(&\u0001(\u0001={0}))");
v = newarray (java.lang.Object)[1];
v[0] = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.NamingEnumeration search(java.lang.String,java.lang.String,java.lang.Object[],javax.naming.directory.SearchControls)>(v, v, v, v);
label:
if v == null goto label;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
if v <= 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: void getGroupNames(javax.naming.directory.SearchResult,java.util.Collection,java.util.Collection,boolean)>(v, v, v, v);
goto label;
label:
if v <= 0 goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean isPosix>;
if v != 0 goto label;
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>(java.util.Collection)>(v);
virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: void goUpGroupHierarchy(java.util.Set,int,java.util.Set)>(v, v, v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>(java.util.Collection)>(v);
v = v;
label:
return v;
}
java.util.List doGetGroups(java.lang.String, int) throws javax.naming.NamingException
{
javax.naming.NamingException v, v;
javax.naming.directory.Attribute v;
boolean v, v, v, v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.util.List v;
javax.naming.directory.Attributes v;
javax.naming.NamingEnumeration v, v;
java.lang.Object[] v;
javax.naming.directory.SearchControls v;
java.util.ArrayList v, v;
int v;
java.lang.String v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v, v;
javax.naming.directory.DirContext v;
java.lang.Object v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.lang.String;
v := @parameter: int;
v = specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext getDirContext()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userbaseDN>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userSearchFilter>;
v = newarray (java.lang.Object)[1];
v[0] = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.NamingEnumeration search(java.lang.String,java.lang.String,java.lang.Object[],javax.naming.directory.SearchControls)>(v, v, v, v);
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v != 0 goto label;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("doGetGroups({}) returned no groups because the user is not found.", v);
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
return v;
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
v = null;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useOneQuery>;
if v == 0 goto label;
label:
v = virtualinvoke v.<javax.naming.directory.SearchResult: javax.naming.directory.Attributes getAttributes()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String memberOfAttr>;
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
if v != null goto label;
v = new javax.naming.NamingException;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String memberOfAttr>;
v = virtualinvoke v.<javax.naming.directory.SearchResult: java.lang.String toString()>();
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[])>("The user object does not have \'\u0001\' attribute.Returned user object: \u0001");
specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>(v);
throw v;
label:
v = new java.util.ArrayList;
specialinvoke v.<java.util.ArrayList: void <init>()>();
v = v;
v = interfaceinvoke v.<javax.naming.directory.Attribute: javax.naming.NamingEnumeration getAll()>();
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMore()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
v = specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String getRelativeDistinguishedName(java.lang.String)>(v);
interfaceinvoke v.<java.util.List: boolean add(java.lang.Object)>(v);
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Throwable)>("Failed to get groups from the first lookup. Initiating the second LDAP query using the user\'s DN.", v);
label:
if v == null goto label;
v = interfaceinvoke v.<java.util.List: boolean isEmpty()>();
if v != 0 goto label;
if v <= 0 goto label;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.List lookupGroup(javax.naming.directory.SearchResult,javax.naming.directory.DirContext,int)>(v, v, v);
label:
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object,java.lang.Object)>("doGetGroups({}) returned {}", v, v);
return v;
catch javax.naming.NamingException from label to label with label;
}
void getGroupNames(javax.naming.directory.SearchResult, java.util.Collection, java.util.Collection, boolean) throws javax.naming.NamingException
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.util.Collection v, v;
javax.naming.NamingException v;
javax.naming.directory.Attribute v;
javax.naming.directory.Attributes v;
java.lang.Object v;
java.lang.String v, v, v, v, v;
javax.naming.directory.SearchResult v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: javax.naming.directory.SearchResult;
v := @parameter: java.util.Collection;
v := @parameter: java.util.Collection;
v := @parameter: boolean;
v = virtualinvoke v.<javax.naming.directory.SearchResult: javax.naming.directory.Attributes getAttributes()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr>;
v = interfaceinvoke v.<javax.naming.directory.Attributes: javax.naming.directory.Attribute get(java.lang.String)>(v);
if v != null goto label;
v = new javax.naming.NamingException;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr>;
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[])>("The group object does not have attribute \'\u0001\'.");
specialinvoke v.<javax.naming.NamingException: void <init>(java.lang.String)>(v);
throw v;
label:
v = interfaceinvoke v.<javax.naming.directory.Attribute: java.lang.Object get()>();
v = virtualinvoke v.<java.lang.Object: java.lang.String toString()>();
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
if v == 0 goto label;
v = virtualinvoke v.<javax.naming.directory.SearchResult: java.lang.String getNameInNamespace()>();
interfaceinvoke v.<java.util.Collection: boolean add(java.lang.Object)>(v);
label:
return;
}
void goUpGroupHierarchy(java.util.Set, int, java.util.Set) throws javax.naming.NamingException
{
javax.naming.directory.SearchControls v;
java.util.HashSet v;
int v, v;
java.lang.String v, v, v, v, v, v;
boolean v, v, v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
org.slf4j.Logger v;
java.util.Iterator v;
javax.naming.directory.DirContext v;
java.util.Set v, v;
javax.naming.NamingEnumeration v;
java.lang.Object v, v;
java.lang.StringBuilder v, v, v, v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.util.Set;
v := @parameter: int;
v := @parameter: java.util.Set;
if v <= 0 goto label;
v = interfaceinvoke v.<java.util.Set: boolean isEmpty()>();
if v == 0 goto label;
label:
return;
label:
v = specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext getDirContext()>();
v = new java.util.HashSet;
specialinvoke v.<java.util.HashSet: void <init>()>();
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("(&");
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupSearchFilter>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("(|");
v = interfaceinvoke v.<java.util.Set: java.util.Iterator iterator()>();
label:
v = interfaceinvoke v.<java.util.Iterator: boolean hasNext()>();
if v == 0 goto label;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("(");
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupMemberAttr>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("=");
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(v);
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>(")");
goto label;
label:
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(java.lang.String)>("))");
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
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[])>("Ldap group query string: \u0001");
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String)>(v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupbaseDN>;
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
v = interfaceinvoke v.<javax.naming.directory.DirContext: javax.naming.NamingEnumeration search(java.lang.String,java.lang.String,javax.naming.directory.SearchControls)>(v, v, v);
label:
v = interfaceinvoke v.<javax.naming.NamingEnumeration: boolean hasMoreElements()>();
if v == 0 goto label;
v = interfaceinvoke v.<javax.naming.NamingEnumeration: java.lang.Object nextElement()>();
virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: void getGroupNames(javax.naming.directory.SearchResult,java.util.Collection,java.util.Collection,boolean)>(v, v, v, 1);
goto label;
label:
v = v - 1;
virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: void goUpGroupHierarchy(java.util.Set,int,java.util.Set)>(v, v, v);
return;
}
protected boolean failover(int, int)
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.lang.Object[] v;
org.slf4j.Logger v;
java.util.Iterator v;
java.lang.Integer v;
int v, v;
java.lang.Object v;
java.lang.String v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: int;
v := @parameter: int;
if v < v goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.Iterator ldapUrls>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl> = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
v = newarray (java.lang.Object)[3];
v = staticinvoke <java.lang.Integer: java.lang.Integer valueOf(int)>(v);
v[0] = v;
v[1] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl>;
v[2] = v;
interfaceinvoke v.<org.slf4j.Logger: void info(java.lang.String,java.lang.Object[])>("Reached {} attempts on {}, failing over to {}", v);
return 1;
label:
return 0;
}
private javax.naming.directory.DirContext getDirContext() throws javax.naming.NamingException
{
javax.naming.directory.InitialDirContext v;
int v, v;
oadd.org.apache.hadoop.conf.Configuration v, v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v;
java.util.Hashtable v;
boolean v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
javax.naming.directory.DirContext v, v;
java.lang.Class v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext ctx>;
if v != null goto label;
v = new java.util.Hashtable;
specialinvoke v.<java.util.Hashtable: void <init>()>();
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Class ldapCxtFactoryClass>;
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.factory.initial", v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl>;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.provider.url", v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.authentication", "simple");
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useSsl>;
if v == 0 goto label;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.protocol", "ssl");
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystore>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystorePass>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststore>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststorePass>;
staticinvoke <oadd.org.apache.hadoop.security.LdapGroupsMapping$LdapSslSocketFactory: void setConfigurations(java.lang.String,java.lang.String,java.lang.String,java.lang.String)>(v, v, v, v);
v = class "Loadd/org/apache/hadoop/security/LdapGroupsMapping$LdapSslSocketFactory;";
v = virtualinvoke v.<java.lang.Class: java.lang.String getName()>();
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.ldap.factory.socket", v);
label:
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindUser>;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.principal", v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindPassword>;
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("java.naming.security.credentials", v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: oadd.org.apache.hadoop.conf.Configuration conf>;
v = (int) 60000;
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.connection.timeout.ms", v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.connect.timeout", v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: oadd.org.apache.hadoop.conf.Configuration conf>;
v = (int) 60000;
v = staticinvoke <java.lang.String: java.lang.String valueOf(int)>(v);
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.read.timeout.ms", v);
virtualinvoke v.<java.util.Hashtable: java.lang.Object put(java.lang.Object,java.lang.Object)>("com.sun.jndi.ldap.read.timeout", v);
v = new javax.naming.directory.InitialDirContext;
specialinvoke v.<javax.naming.directory.InitialDirContext: void <init>(java.util.Hashtable)>(v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext ctx> = v;
label:
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.DirContext ctx>;
return v;
}
public void cacheGroupsRefresh()
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
return;
}
public void cacheGroupsAdd(java.util.List)
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.util.List v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.util.List;
return;
}
public synchronized oadd.org.apache.hadoop.conf.Configuration getConf()
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
oadd.org.apache.hadoop.conf.Configuration v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: oadd.org.apache.hadoop.conf.Configuration conf>;
return v;
}
public synchronized void setConf(oadd.org.apache.hadoop.conf.Configuration)
{
oadd.org.apache.hadoop.conf.Configuration v;
boolean v, v, v, v, v, v, v, v, v, v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.lang.String[] v, v, v, v, v;
javax.naming.directory.SearchControls v, v;
int v, v, v, v, v;
java.lang.Boolean v;
java.lang.String v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v, v;
org.slf4j.Logger v, v;
java.util.Iterator v, v;
java.lang.RuntimeException v;
java.lang.Class v, v;
java.lang.Object v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v = newarray (java.lang.String)[1];
v[0] = "";
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String[] getStrings(java.lang.String,java.lang.String[])>("hadoop.security.group.mapping.ldap.url", v);
if v == null goto label;
v = lengthof v;
if v != 0 goto label;
label:
v = new java.lang.RuntimeException;
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String)>("LDAP URL(s) are not configured");
throw v;
label:
v = staticinvoke <oadd.com.google.common.collect.Iterators: java.util.Iterator cycle(java.lang.Object[])>(v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.Iterator ldapUrls> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.Iterator ldapUrls>;
v = interfaceinvoke v.<java.util.Iterator: java.lang.Object next()>();
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String currentLdapUrl> = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Boolean LDAP_USE_SSL_DEFAULT>;
v = virtualinvoke v.<java.lang.Boolean: boolean booleanValue()>();
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: boolean getBoolean(java.lang.String,boolean)>("hadoop.security.group.mapping.ldap.ssl", v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useSsl> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useSsl>;
if v == 0 goto label;
specialinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: void loadSslConf(oadd.org.apache.hadoop.conf.Configuration)>(v);
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.bind.user", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindUser> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String getPassword(oadd.org.apache.hadoop.conf.Configuration,java.lang.String,java.lang.String)>(v, "hadoop.security.group.mapping.ldap.bind.password", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindPassword> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindPassword>;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.bind.password.file", "");
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String extractPassword(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String bindPassword> = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String getTrimmed(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.base", "");
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String getTrimmed(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.userbase", v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userbaseDN> = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userbaseDN>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Usersearch baseDN: {}", v);
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String getTrimmed(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.groupbase", v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupbaseDN> = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupbaseDN>;
interfaceinvoke v.<org.slf4j.Logger: void debug(java.lang.String,java.lang.Object)>("Groupsearch baseDN: {}", v);
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.search.filter.group", "(objectClass=group)");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupSearchFilter> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.search.filter.user", "(&(objectClass=user)(sAMAccountName={0}))");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userSearchFilter> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupSearchFilter>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("posixGroup");
if v == 0 goto label;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String userSearchFilter>;
v = virtualinvoke v.<java.lang.String: boolean contains(java.lang.CharSequence)>("posixAccount");
if v == 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean isPosix> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.search.attr.memberof", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String memberOfAttr> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String memberOfAttr>;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v != 0 goto label;
v = 1;
goto label;
label:
v = 0;
label:
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useOneQuery> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.search.attr.member", "member");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupMemberAttr> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.search.attr.group.name", "cn");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: int getInt(java.lang.String,int)>("hadoop.security.group.mapping.ldap.search.group.hierarchy.levels", 0);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int groupHierarchyLevels> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.posix.attr.uid.name", "uidNumber");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixUidAttr> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.posix.attr.gid.name", "gidNumber");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: int getInt(java.lang.String,int)>("hadoop.security.group.mapping.ldap.directory.search.timeout", 10000);
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
virtualinvoke v.<javax.naming.directory.SearchControls: void setTimeLimit(int)>(v);
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: boolean useOneQuery>;
if v == 0 goto label;
v = newarray (java.lang.String)[4];
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr>;
v[0] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixUidAttr>;
v[1] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr>;
v[2] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String memberOfAttr>;
v[3] = v;
v = v;
goto label;
label:
v = newarray (java.lang.String)[3];
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String groupNameAttr>;
v[0] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixUidAttr>;
v[1] = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String posixGidAttr>;
v[2] = v;
v = v;
label:
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
virtualinvoke v.<javax.naming.directory.SearchControls: void setReturningAttributes(java.lang.String[])>(v);
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Class LDAP_CTX_FACTORY_CLASS_DEFAULT>;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.Class getClass(java.lang.String,java.lang.Class,java.lang.Class)>("hadoop.security.group.mapping.ldap.ctx.factory.class", v, class "Ljavax/naming/spi/InitialContextFactory;");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Class ldapCxtFactoryClass> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: int getInt(java.lang.String,int)>("hadoop.security.group.mapping.ldap.num.attempts", 3);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int numAttempts> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: int getInt(java.lang.String,int)>("hadoop.security.group.mapping.ldap.num.attempts.before.failover", 3);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: int numAttemptsBeforeFailover> = v;
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: oadd.org.apache.hadoop.conf.Configuration conf> = v;
return;
}
public java.util.Iterator getLdapUrls()
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.util.Iterator v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.util.Iterator ldapUrls>;
return v;
}
private void loadSslConf(oadd.org.apache.hadoop.conf.Configuration)
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v, v, v, v, v, v, v, v, v;
boolean v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.ssl.keystore", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystore> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String getPassword(oadd.org.apache.hadoop.conf.Configuration,java.lang.String,java.lang.String)>(v, "hadoop.security.group.mapping.ldap.ssl.keystore.password", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystorePass> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystorePass>;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.ssl.keystore.password.file", "");
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String extractPassword(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String keystorePass> = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.ssl.truststore", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststore> = v;
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String getPasswordFromCredentialProviders(oadd.org.apache.hadoop.conf.Configuration,java.lang.String,java.lang.String)>(v, "hadoop.security.group.mapping.ldap.ssl.truststore.password", "");
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststorePass> = v;
v = v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststorePass>;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: java.lang.String get(java.lang.String,java.lang.String)>("hadoop.security.group.mapping.ldap.ssl.truststore.password.file", "");
v = virtualinvoke v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String extractPassword(java.lang.String)>(v);
v.<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.String truststorePass> = v;
label:
return;
}
java.lang.String getPasswordFromCredentialProviders(oadd.org.apache.hadoop.conf.Configuration, java.lang.String, java.lang.String)
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
org.slf4j.Logger v;
java.io.IOException v;
char[] v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: char[] getPasswordFromCredentialProviders(java.lang.String)>(v);
if v == null goto label;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
v = v;
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Exception while trying to get password for alias {}: {}", v, v);
label:
return v;
catch java.io.IOException from label to label with label;
}
java.lang.String getPassword(oadd.org.apache.hadoop.conf.Configuration, java.lang.String, java.lang.String)
{
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
org.slf4j.Logger v;
java.io.IOException v;
char[] v;
oadd.org.apache.hadoop.conf.Configuration v;
java.lang.String v, v, v, v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: oadd.org.apache.hadoop.conf.Configuration;
v := @parameter: java.lang.String;
v := @parameter: java.lang.String;
v = v;
label:
v = virtualinvoke v.<oadd.org.apache.hadoop.conf.Configuration: char[] getPassword(java.lang.String)>(v);
if v == null goto label;
v = new java.lang.String;
specialinvoke v.<java.lang.String: void <init>(char[])>(v);
v = v;
label:
goto label;
label:
v := @caughtexception;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG>;
interfaceinvoke v.<org.slf4j.Logger: void warn(java.lang.String,java.lang.Object,java.lang.Object)>("Exception while trying to get password for alias {}:", v, v);
label:
return v;
catch java.io.IOException from label to label with label;
}
java.lang.String extractPassword(java.lang.String)
{
java.lang.Throwable v;
oadd.org.apache.hadoop.security.LdapGroupsMapping v;
java.io.IOException v;
java.io.FileInputStream v;
java.lang.RuntimeException v;
java.io.InputStreamReader v;
java.nio.charset.Charset v;
int v, v;
java.lang.StringBuilder v;
java.lang.String v, v, v, v;
boolean v;
v := @this: oadd.org.apache.hadoop.security.LdapGroupsMapping;
v := @parameter: java.lang.String;
v = virtualinvoke v.<java.lang.String: boolean isEmpty()>();
if v == 0 goto label;
return "";
label:
v = new java.lang.StringBuilder;
specialinvoke v.<java.lang.StringBuilder: void <init>()>();
label:
v = new java.io.InputStreamReader;
v = new java.io.FileInputStream;
specialinvoke v.<java.io.FileInputStream: void <init>(java.lang.String)>(v);
v = <java.nio.charset.StandardCharsets: java.nio.charset.Charset UTF_8>;
specialinvoke v.<java.io.InputStreamReader: void <init>(java.io.InputStream,java.nio.charset.Charset)>(v, v);
label:
v = virtualinvoke v.<java.io.Reader: int read()>();
label:
v = (int) -1;
if v <= v goto label;
virtualinvoke v.<java.lang.StringBuilder: java.lang.StringBuilder append(char)>(v);
v = virtualinvoke v.<java.io.Reader: int read()>();
goto label;
label:
v = virtualinvoke v.<java.lang.StringBuilder: java.lang.String toString()>();
v = virtualinvoke v.<java.lang.String: java.lang.String trim()>();
label:
virtualinvoke v.<java.io.Reader: void close()>();
label:
return v;
label:
v := @caughtexception;
throw v;
label:
v := @caughtexception;
v = new java.lang.RuntimeException;
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[])>("Could not read password file: \u0001");
specialinvoke v.<java.lang.RuntimeException: void <init>(java.lang.String,java.lang.Throwable)>(v, v);
throw v;
catch java.lang.Throwable from label to label with label;
catch java.io.IOException from label to label with label;
}
static void <clinit>()
{
org.slf4j.Logger v;
java.lang.Boolean v;
javax.naming.directory.SearchControls v, v;
v = staticinvoke <java.lang.Boolean: java.lang.Boolean valueOf(boolean)>(0);
<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Boolean LDAP_USE_SSL_DEFAULT> = v;
<oadd.org.apache.hadoop.security.LdapGroupsMapping: java.lang.Class LDAP_CTX_FACTORY_CLASS_DEFAULT> = class "Lcom/sun/jndi/ldap/LdapCtxFactory;";
v = staticinvoke <org.slf4j.LoggerFactory: org.slf4j.Logger getLogger(java.lang.Class)>(class "Loadd/org/apache/hadoop/security/LdapGroupsMapping;");
<oadd.org.apache.hadoop.security.LdapGroupsMapping: org.slf4j.Logger LOG> = v;
v = new javax.naming.directory.SearchControls;
specialinvoke v.<javax.naming.directory.SearchControls: void <init>()>();
<oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS> = v;
v = <oadd.org.apache.hadoop.security.LdapGroupsMapping: javax.naming.directory.SearchControls SEARCH_CONTROLS>;
virtualinvoke v.<javax.naming.directory.SearchControls: void setSearchScope(int)>(2);
return;
}
}