Java源码示例:org.apache.hadoop.security.ShellBasedUnixGroupsMapping

示例1
private void testForUser(String user) throws Exception {
  GroupMappingServiceProvider g = new ShellBasedUnixGroupsMapping();
  List<String> shellBasedGroups = g.getGroups(user);
  g = new JniBasedUnixGroupsMapping();
  List<String> jniBasedGroups = g.getGroups(user);
  
  String[] shellBasedGroupsArray = shellBasedGroups.toArray(new String[0]);
  Arrays.sort(shellBasedGroupsArray);
  String[] jniBasedGroupsArray = jniBasedGroups.toArray(new String[0]);
  Arrays.sort(jniBasedGroupsArray);
  
  if (!Arrays.equals(shellBasedGroupsArray, jniBasedGroupsArray)) {
    fail("Groups returned by " + 
        ShellBasedUnixGroupsMapping.class.getCanonicalName() + 
        " and " +
        JniBasedUnixGroupsMapping.class.getCanonicalName() + 
        " didn't match for " + user);
  }
}
 
示例2
private void testForUser(String user) throws Exception {
  GroupMappingServiceProvider g = new ShellBasedUnixGroupsMapping();
  List<String> shellBasedGroups = g.getGroups(user);
  g = new JniBasedUnixGroupsMapping();
  List<String> jniBasedGroups = g.getGroups(user);
  
  String[] shellBasedGroupsArray = shellBasedGroups.toArray(new String[0]);
  Arrays.sort(shellBasedGroupsArray);
  String[] jniBasedGroupsArray = jniBasedGroups.toArray(new String[0]);
  Arrays.sort(jniBasedGroupsArray);
  
  if (!Arrays.equals(shellBasedGroupsArray, jniBasedGroupsArray)) {
    fail("Groups returned by " + 
        ShellBasedUnixGroupsMapping.class.getCanonicalName() + 
        " and " +
        JniBasedUnixGroupsMapping.class.getCanonicalName() + 
        " didn't match for " + user);
  }
}
 
示例3
/**
 * update the configuration with fake class for mapping user to groups
 * @param conf
 * @param map - user to groups mapping
 */
static public void updateConfWithFakeGroupMapping
  (Configuration conf, Map<String, String []> map) {
  if(map!=null) {
    MockUnixGroupsMapping.fakeUser2GroupsMap = map;
  }
  
  // fake mapping user to groups
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
      DFSTestUtil.MockUnixGroupsMapping.class,
      ShellBasedUnixGroupsMapping.class);
  
}
 
示例4
@Before
public void setup() {
  FakeGroupMapping.resetRequestCount();
  ExceptionalGroupMapping.resetRequestCount();

  conf = new Configuration();
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
    FakeGroupMapping.class,
    ShellBasedUnixGroupsMapping.class);
}
 
示例5
@Test
public void testGroupLookupForStaticUsers() throws Exception {
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
      FakeunPrivilegedGroupMapping.class, ShellBasedUnixGroupsMapping.class);
  conf.set(CommonConfigurationKeys.HADOOP_USER_GROUP_STATIC_OVERRIDES, "me=;user1=group1;user2=group1,group2");
  Groups groups = new Groups(conf);
  List<String> userGroups = groups.getGroups("me");
  assertTrue("non-empty groups for static user", userGroups.isEmpty());
  assertFalse("group lookup done for static user",
      FakeunPrivilegedGroupMapping.invoked);
  
  List<String> expected = new ArrayList<String>();
  expected.add("group1");

  FakeunPrivilegedGroupMapping.invoked = false;
  userGroups = groups.getGroups("user1");
  assertTrue("groups not correct", expected.equals(userGroups));
  assertFalse("group lookup done for unprivileged user",
      FakeunPrivilegedGroupMapping.invoked);

  expected.add("group2");
  FakeunPrivilegedGroupMapping.invoked = false;
  userGroups = groups.getGroups("user2");
  assertTrue("groups not correct", expected.equals(userGroups));
  assertFalse("group lookup done for unprivileged user",
      FakeunPrivilegedGroupMapping.invoked);

  Configuration newConf = new Configuration();
  newConf.set(CommonConfigurationKeys.HADOOP_USER_GROUP_STATIC_OVERRIDES, "me=;user1=group1;user2=group1,group2;user3=group3");
  groups.refresh(newConf);

  expected.clear();
  expected.add("group3");
  FakeunPrivilegedGroupMapping.invoked = false;
  userGroups = groups.getGroups("user3");
  assertTrue("groups not correct", expected.equals(userGroups));
  assertFalse("group lookup done for unprivileged user",
      FakeunPrivilegedGroupMapping.invoked);
}
 
示例6
/**
 * update the configuration with fake class for mapping user to groups
 * @param conf
 * @param map - user to groups mapping
 */
static public void updateConfWithFakeGroupMapping
  (Configuration conf, Map<String, String []> map) {
  if(map!=null) {
    MockUnixGroupsMapping.fakeUser2GroupsMap = map;
  }
  
  // fake mapping user to groups
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
      DFSTestUtil.MockUnixGroupsMapping.class,
      ShellBasedUnixGroupsMapping.class);
  
}
 
示例7
@Before
public void setup() {
  FakeGroupMapping.resetRequestCount();
  ExceptionalGroupMapping.resetRequestCount();

  conf = new Configuration();
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
    FakeGroupMapping.class,
    ShellBasedUnixGroupsMapping.class);
}
 
示例8
@Test
public void testGroupLookupForStaticUsers() throws Exception {
  conf.setClass(CommonConfigurationKeys.HADOOP_SECURITY_GROUP_MAPPING,
      FakeunPrivilegedGroupMapping.class, ShellBasedUnixGroupsMapping.class);
  conf.set(CommonConfigurationKeys.HADOOP_USER_GROUP_STATIC_OVERRIDES, "me=;user1=group1;user2=group1,group2");
  Groups groups = new Groups(conf);
  List<String> userGroups = groups.getGroups("me");
  assertTrue("non-empty groups for static user", userGroups.isEmpty());
  assertFalse("group lookup done for static user",
      FakeunPrivilegedGroupMapping.invoked);
  
  List<String> expected = new ArrayList<String>();
  expected.add("group1");

  FakeunPrivilegedGroupMapping.invoked = false;
  userGroups = groups.getGroups("user1");
  assertTrue("groups not correct", expected.equals(userGroups));
  assertFalse("group lookup done for unprivileged user",
      FakeunPrivilegedGroupMapping.invoked);

  expected.add("group2");
  FakeunPrivilegedGroupMapping.invoked = false;
  userGroups = groups.getGroups("user2");
  assertTrue("groups not correct", expected.equals(userGroups));
  assertFalse("group lookup done for unprivileged user",
      FakeunPrivilegedGroupMapping.invoked);

}