HADOOP-12566. Add NullGroupMapping. (Daniel Templeton via kasha)

This commit is contained in:
Karthik Kambatla 2015-12-23 14:34:53 -08:00
parent bb5df272b9
commit 8b1837fcd1
3 changed files with 112 additions and 0 deletions

View File

@ -651,6 +651,8 @@ Release 2.9.0 - UNRELEASED
HADOOP-12625. Add a config to disable the /logs endpoints (rkanter)
HADOOP-12566. Add NullGroupMapping. (Daniel Templeton via kasha)
OPTIMIZATIONS
BUG FIXES

View File

@ -0,0 +1,50 @@
/*
* Copyright 2015 Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.security;
import java.util.Collections;
import java.util.List;
/**
* This class provides groups mapping for {@link UserGroupInformation} when the
* user group information will not be used.
*/
public class NullGroupsMapping implements GroupMappingServiceProvider {
/**
* Nothing is returned, so nothing is cached.
* @param groups ignored
*/
@Override
public void cacheGroupsAdd(List<String> groups) {
}
/**
* Returns an empty list.
* @param user ignored
* @return an empty list
*/
@Override
public List<String> getGroups(String user) {
return Collections.emptyList();
}
/**
* Nothing is returned, so nothing is cached.
*/
@Override
public void cacheGroupsRefresh() {
}
}

View File

@ -0,0 +1,60 @@
/*
* Copyright 2015 Apache Software Foundation.
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package org.apache.hadoop.security;
import java.util.Arrays;
import java.util.Collections;
import java.util.List;
import org.junit.Before;
import org.junit.Test;
import static org.junit.Assert.*;
/**
* Test that the {@link NullGroupsMapping} really does nothing.
*/
public class TestNullGroupsMapping {
private NullGroupsMapping ngm;
@Before
public void setUp() {
this.ngm = new NullGroupsMapping();
}
/**
* Test of getGroups method, of class {@link NullGroupsMapping}.
*/
@Test
public void testGetGroups() {
String user = "user";
List<String> expResult = Collections.emptyList();
List<String> result = ngm.getGroups(user);
assertEquals("No groups should be returned",
expResult, result);
ngm.cacheGroupsAdd(Arrays.asList(new String[] {"group1", "group2"}));
result = ngm.getGroups(user);
assertEquals("No groups should be returned",
expResult, result);
ngm.cacheGroupsRefresh();
result = ngm.getGroups(user);
assertEquals("No groups should be returned",
expResult, result);
}
}