You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ambari.apache.org by rl...@apache.org on 2017/06/15 15:06:16 UTC
[2/8] ambari git commit: AMBARI-21147. Update Database Access Layer
to Support New Database Schema for Improved User Account Management (rlevas)
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderDBTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderDBTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderDBTest.java
index c4f0f34..db7548f 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderDBTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderDBTest.java
@@ -23,6 +23,7 @@ import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
import java.sql.SQLException;
+import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collections;
import java.util.HashMap;
@@ -45,8 +46,8 @@ import org.apache.ambari.server.controller.utilities.PropertyHelper;
import org.apache.ambari.server.orm.InMemoryDefaultTestModule;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationHelper;
-import org.junit.AfterClass;
-import org.junit.BeforeClass;
+import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.powermock.core.classloader.annotations.PrepareForTest;
import org.springframework.security.core.Authentication;
@@ -63,221 +64,232 @@ import com.google.inject.persist.PersistService;
*/
@PrepareForTest({AuthorizationHelper.class})
public class UserResourceProviderDBTest {
- private static Injector injector;
- private static AmbariManagementController amc;
- private static Resource.Type userType = Resource.Type.User;
- private static UserResourceProvider userResourceProvider;
- private static String JDBC_IN_MEMORY_URL_CREATE =
- String.format("jdbc:derby:memory:myDB/%s;create=true", Configuration.DEFAULT_DERBY_SCHEMA);
- private static String JDBC_IN_MEMORY_URL_DROP =
- String.format("jdbc:derby:memory:myDB/%s;drop=true", Configuration.DEFAULT_DERBY_SCHEMA);
-
- /**
- * Sets up the in-memory database for the test suite.
- */
- @BeforeClass
- public static void setupInMemoryDB() {
- InMemoryDefaultTestModule testModule = new InMemoryDefaultTestModule();
-
- Properties properties = testModule.getProperties();
- properties.setProperty(Configuration.SERVER_JDBC_URL.getKey(), JDBC_IN_MEMORY_URL_CREATE);
- properties.setProperty(Configuration.SERVER_JDBC_DRIVER.getKey(), Configuration.JDBC_IN_MEMORY_DRIVER);
- injector = Guice.createInjector(testModule);
-
- injector.getInstance(PersistService.class).start();
-
- amc = injector.getInstance(AmbariManagementController.class);
-
- Set<String> propertyIds = PropertyHelper.getPropertyIds(userType);
- Map<Resource.Type,String> keyPropertyIds = PropertyHelper.getKeyPropertyIds(userType);
-
- userResourceProvider = new UserResourceProvider(propertyIds, keyPropertyIds, amc);
+ private static Injector injector;
+ private static AmbariManagementController amc;
+ private static Resource.Type userType = Resource.Type.User;
+ private static UserResourceProvider userResourceProvider;
+ private static String JDBC_IN_MEMORY_URL_CREATE =
+ String.format("jdbc:derby:memory:myDB/%s;create=true", Configuration.DEFAULT_DERBY_SCHEMA);
+ private static String JDBC_IN_MEMORY_URL_DROP =
+ String.format("jdbc:derby:memory:myDB/%s;drop=true", Configuration.DEFAULT_DERBY_SCHEMA);
+
+ /**
+ * Sets up the in-memory database for the test suite.
+ */
+ @Before
+ public void setupInMemoryDB() {
+ InMemoryDefaultTestModule testModule = new InMemoryDefaultTestModule();
+
+ Properties properties = testModule.getProperties();
+ properties.setProperty(Configuration.SERVER_JDBC_URL.getKey(), JDBC_IN_MEMORY_URL_CREATE);
+ properties.setProperty(Configuration.SERVER_JDBC_DRIVER.getKey(), Configuration.JDBC_IN_MEMORY_DRIVER);
+ injector = Guice.createInjector(testModule);
+
+ injector.getInstance(PersistService.class).start();
+
+ amc = injector.getInstance(AmbariManagementController.class);
+
+ Set<String> propertyIds = PropertyHelper.getPropertyIds(userType);
+ Map<Resource.Type, String> keyPropertyIds = PropertyHelper.getKeyPropertyIds(userType);
+
+ userResourceProvider = new UserResourceProvider(propertyIds, keyPropertyIds, amc);
+ injector.injectMembers(userResourceProvider);
+ }
+
+ /**
+ * Closes the JPA connection after executing the test suite.
+ */
+ @After
+ public void teardownInMemoryDB() throws AmbariException, SQLException {
+ if (injector != null) {
+ H2DatabaseCleaner.clearDatabaseAndStopPersistenceService(injector);
}
+ }
+
+ /**
+ * Creates a user, retrieves it and verifies that the username matches the one that was
+ * created. Deletes the created user and verifies that the username was deleted.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void createUserTest() throws Exception {
+ Authentication authentication = TestAuthenticationFactory.createAdministrator();
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+
+ // create a new user viewUser
+ Map<String, Object> requestProperties = new HashMap<>();
+ requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "viewUser");
+ requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
+ requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
+ requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
+
+ Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
+ RequestStatus requestStatus = userResourceProvider.createResources(request);
+ assertNotNull(requestStatus);
+
+ // verify the created username
+ Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Collections.singleton("Users")));
+ Predicate predicate = new PredicateBuilder()
+ .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("viewUser").toPredicate();
+ Set<Resource> resources = userResourceProvider.getResources(getRequest, predicate);
+ assertEquals(resources.size(), 1);
+ Resource resource = resources.iterator().next();
+
+ String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
+ assertEquals("viewuser", userName);
+
+ // delete the created username
+ requestStatus = userResourceProvider.deleteResources(request, predicate);
+ assertNotNull(requestStatus);
+
+ // verify that the username was deleted
+ resources = userResourceProvider.getResources(getRequest, null);
+ assertEquals(resources.size(), 0);
+ }
+
+ /**
+ * Creates a username in all lowercase. Attempt to add another user whose username differs only
+ * by case to the previously added user. Verifies that the user cannot be added.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void createExistingUserTest() throws Exception {
+ Authentication authentication = TestAuthenticationFactory.createAdministrator();
+ SecurityContextHolder.getContext().setAuthentication(authentication);
- /**
- * Closes the JPA connection after executing the test suite.
- */
- @AfterClass
- public static void teardownInMemoryDB() throws AmbariException, SQLException {
- if (injector != null) {
- H2DatabaseCleaner.clearDatabaseAndStopPersistenceService(injector);
- }
- }
+ /* add a new user */
+ Map<String, Object> requestProperties = new HashMap<>();
+ requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "abcd");
+ requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
+ requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
+ requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
- /**
- * Creates a user, retrieves it and verifies that the username matches the one that was
- * created. Deletes the created user and verifies that the username was deleted.
- *
- * @throws Exception
- */
- @Test
- public void createUserTest() throws Exception {
- Authentication authentication = TestAuthenticationFactory.createAdministrator();
- SecurityContextHolder.getContext().setAuthentication(authentication);
-
- // create a new user viewUser
- Map<String, Object> requestProperties = new HashMap<>();
- requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "viewUser");
- requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
- requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
- requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
-
- Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
- RequestStatus requestStatus = userResourceProvider.createResources(request);
- assertNotNull(requestStatus);
-
- // verify the created username
- Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
- Predicate predicate = new PredicateBuilder()
- .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("viewUser").toPredicate();
- Set<Resource> resources = userResourceProvider.getResources(getRequest, predicate);
- assertEquals(resources.size(), 1);
- Resource resource = resources.iterator().next();
-
- String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
- assertEquals(userName, "viewUser");
-
- // delete the created username
- requestStatus = userResourceProvider.deleteResources(request, predicate);
- assertNotNull(requestStatus);
-
- // verify that the username was deleted
- resources = userResourceProvider.getResources(getRequest, null);
- assertEquals(resources.size(), 0);
- }
+ Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
+ RequestStatus requestStatus = userResourceProvider.createResources(request);
+ assertNotNull(requestStatus);
- /**
- * Creates a username in all lowercase. Attempt to add another user whose username differs only
- * by case to the previously added user. Verifies that the user cannot be added.
- *
- * @throws Exception
- */
- @Test
- public void createExistingUserTest() throws Exception {
- Authentication authentication = TestAuthenticationFactory.createAdministrator();
- SecurityContextHolder.getContext().setAuthentication(authentication);
+ /* try with uppercase version of an existing user */
+ requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "ABCD");
+ request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
+ try {
+ requestStatus = userResourceProvider.createResources(request);
+ assertTrue("Should fail with user exists", false);
+ } catch (Exception ex) {
+ assertTrue(ex.getMessage().contains("User already exists"));
+ }
- /* add a new user */
- Map<String, Object> requestProperties = new HashMap<>();
- requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "abcd");
- requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
- requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
- requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
+ // delete the created username
+ Predicate predicate = new PredicateBuilder()
+ .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("abcd").toPredicate();
+ requestStatus = userResourceProvider.deleteResources(request, predicate);
+ assertNotNull(requestStatus);
+
+ // verify that the username was deleted
+ Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
+ Set<Resource> resources = userResourceProvider.getResources(getRequest, null);
+ assertEquals(resources.size(), 0);
+ }
+
+ /**
+ * Creates a user and retrieves the user using the same username but in lowercase. Verifies
+ * that the retrieval is successful and that the retrieved username is the same as the one
+ * that was used during creation.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getExistingUser() throws Exception {
+ Authentication authentication = TestAuthenticationFactory.createAdministrator();
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+
+ // create a new user viewUser
+ Map<String, Object> requestProperties = new HashMap<>();
+ requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "viewUser");
+ requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
+ requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
+ requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
+
+ Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
+ RequestStatus requestStatus = userResourceProvider.createResources(request);
+ assertNotNull(requestStatus);
+
+ // verify the created username
+ Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
+ Predicate predicate = new PredicateBuilder()
+ .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("viewuser").toPredicate();
+ Set<Resource> resources = userResourceProvider.getResources(getRequest, predicate);
+ assertEquals(resources.size(), 1);
+ Resource resource = resources.iterator().next();
+
+ String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
+ assertEquals("viewuser", userName);
+
+ // delete the created username
+ requestStatus = userResourceProvider.deleteResources(request, predicate);
+ assertNotNull(requestStatus);
+
+ // verify that the username was deleted
+ resources = userResourceProvider.getResources(getRequest, null);
+ assertEquals(resources.size(), 0);
+ }
+
+ /**
+ * Adds an array of users, retrieves the users and verifies that the usernames do not differ
+ * from the ones that were used during creation.
+ *
+ * @throws Exception
+ */
+ @Test
+ public void getAllUserTest() throws Exception {
+ Authentication authentication = TestAuthenticationFactory.createAdministrator();
+ SecurityContextHolder.getContext().setAuthentication(authentication);
+
+ List<String> userNames = Arrays.asList("user1", "uSer2", "User3", "useR4");
+ List<String> lowercaseUserNames = new ArrayList<>();
+
+ for (String username : userNames) {
+ lowercaseUserNames.add(username.toLowerCase());
+ }
- Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
- RequestStatus requestStatus = userResourceProvider.createResources(request);
- assertNotNull(requestStatus);
+ for (String userName : userNames) {
+ Map<String, Object> requestProperties = new HashMap<>();
+ requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, userName);
+ requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
+ requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
+ requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
- /* try with uppercase version of an existing user */
- requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "ABCD");
- request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
- try {
- requestStatus = userResourceProvider.createResources(request);
- assertTrue("Should fail with user exists", false);
- }
- catch(Exception ex) {
- assertTrue(ex.getMessage().contains("User abcd already exists"));
- }
-
- // delete the created username
- Predicate predicate = new PredicateBuilder()
- .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("abcd").toPredicate();
- requestStatus = userResourceProvider.deleteResources(request, predicate);
- assertNotNull(requestStatus);
-
- // verify that the username was deleted
- Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
- Set<Resource> resources = userResourceProvider.getResources(getRequest, null);
- assertEquals(resources.size(), 0);
+ Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
+ RequestStatus requestStatus = userResourceProvider.createResources(request);
+ assertNotNull(requestStatus);
}
- /**
- * Creates a user and retrieves the user using the same username but in lowercase. Verifies
- * that the retrieval is successful and that the retrieved username is the same as the one
- * that was used during creation.
- *
- * @throws Exception
- */
- @Test
- public void getExistingUserCaseInsensitiveTest() throws Exception {
- Authentication authentication = TestAuthenticationFactory.createAdministrator();
- SecurityContextHolder.getContext().setAuthentication(authentication);
-
- // create a new user viewUser
- Map<String, Object> requestProperties = new HashMap<>();
- requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "viewUser");
- requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
- requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
- requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
-
- Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
- RequestStatus requestStatus = userResourceProvider.createResources(request);
- assertNotNull(requestStatus);
-
- // verify the created username
- Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
- Predicate predicate = new PredicateBuilder()
- .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals("viewuser").toPredicate();
- Set<Resource> resources = userResourceProvider.getResources(getRequest, predicate);
- assertEquals(resources.size(), 1);
- Resource resource = resources.iterator().next();
-
- String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
- assertEquals(userName, "viewUser");
-
- // delete the created username
- requestStatus = userResourceProvider.deleteResources(request, predicate);
- assertNotNull(requestStatus);
-
- // verify that the username was deleted
- resources = userResourceProvider.getResources(getRequest, null);
- assertEquals(resources.size(), 0);
+ // verify the created username
+ Request getRequest = PropertyHelper.getReadRequest(Collections.singleton(("Users")));
+ Set<Resource> resources = userResourceProvider.getResources(getRequest, null);
+ for (Resource resource : resources) {
+ System.out.println("Resource: " + resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString());
+ }
+ for (String s: lowercaseUserNames) {
+ System.out.println("LC UN: " + s);
+ }
+ assertEquals(lowercaseUserNames.size(), resources.size());
+ for (Resource resource : resources) {
+ String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
+ assertTrue(lowercaseUserNames.contains(userName));
}
- /**
- * Adds an array of users, retrieves the users and verifies that the usernames do not differ
- * from the ones that were used during creation.
- *
- * @throws Exception
- */
- @Test
- public void getAllUserTest() throws Exception {
- Authentication authentication = TestAuthenticationFactory.createAdministrator();
- SecurityContextHolder.getContext().setAuthentication(authentication);
-
- List<String> userNames = Arrays.asList("user1", "uSer2", "User3", "useR4");
-
- for (String userName : userNames) {
- Map<String, Object> requestProperties = new HashMap<>();
- requestProperties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, userName);
- requestProperties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
- requestProperties.put(UserResourceProvider.USER_ADMIN_PROPERTY_ID, false);
- requestProperties.put(UserResourceProvider.USER_ACTIVE_PROPERTY_ID, true);
-
- Request request = PropertyHelper.getCreateRequest(Collections.singleton(requestProperties), null);
- RequestStatus requestStatus = userResourceProvider.createResources(request);
- assertNotNull(requestStatus);
- }
-
- // verify the created username
- Request getRequest = PropertyHelper.getReadRequest(new HashSet<>(Arrays.asList("Users")));
- Set<Resource> resources = userResourceProvider.getResources(getRequest, null);
- assertEquals(resources.size(), userNames.size());
- for (Resource resource : resources) {
- String userName = resource.getPropertyValue(UserResourceProvider.USER_USERNAME_PROPERTY_ID).toString();
- assertTrue(userNames.contains(userName));
- }
-
- // delete the users
- for (String userName : userNames) {
- Predicate predicate = new PredicateBuilder()
- .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals(userName).toPredicate();
- RequestStatus requestStatus = userResourceProvider.deleteResources(null /* not used */, predicate);
- assertNotNull(requestStatus);
- }
-
- // verify that the username was deleted
- resources = userResourceProvider.getResources(getRequest, null);
- assertEquals(resources.size(), 0);
+ // delete the users
+ for (String userName : userNames) {
+ Predicate predicate = new PredicateBuilder()
+ .property(UserResourceProvider.USER_USERNAME_PROPERTY_ID).equals(userName).toPredicate();
+ RequestStatus requestStatus = userResourceProvider.deleteResources(null /* not used */, predicate);
+ assertNotNull(requestStatus);
}
+
+ // verify that the username was deleted
+ resources = userResourceProvider.getResources(getRequest, null);
+ assertEquals(resources.size(), 0);
+ }
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
index d298b7f..4530d40 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/controller/internal/UserResourceProviderTest.java
@@ -6,9 +6,9 @@
* to you 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
- * <p/>
- * http://www.apache.org/licenses/LICENSE-2.0
- * <p/>
+ *
+ * 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.
@@ -55,11 +55,12 @@ import org.apache.ambari.server.metadata.CachedRoleCommandOrderProvider;
import org.apache.ambari.server.metadata.RoleCommandOrderProvider;
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.dao.HostRoleCommandDAO;
+import org.apache.ambari.server.orm.entities.MemberEntity;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
+import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.scheduler.ExecutionScheduler;
import org.apache.ambari.server.security.TestAuthenticationFactory;
import org.apache.ambari.server.security.authorization.AuthorizationException;
-import org.apache.ambari.server.security.authorization.User;
-import org.apache.ambari.server.security.authorization.UserType;
import org.apache.ambari.server.security.authorization.Users;
import org.apache.ambari.server.security.encryption.CredentialStoreService;
import org.apache.ambari.server.security.encryption.CredentialStoreServiceImpl;
@@ -266,9 +267,20 @@ public class UserResourceProviderTest extends EasyMockSupport {
private void createResourcesTest(Authentication authentication) throws Exception {
Injector injector = createInjector();
+ UserEntity userEntity100 = createNiceMock(UserEntity.class);
+ UserEntity userEntity200 = createNiceMock(UserEntity.class);
+
Users users = injector.getInstance(Users.class);
- users.createUser("User100", "password", UserType.LOCAL, (Boolean) null, null);
- expectLastCall().atLeastOnce();
+ expect(users.createUser("User100", "User100", "User100", null))
+ .andReturn(userEntity100)
+ .once();
+ expect(users.createUser("user200", "user200", "user200", null))
+ .andReturn(userEntity200)
+ .once();
+
+ users.addLocalAuthentication(userEntity100, "password100");
+ users.addLocalAuthentication(userEntity200, "password200");
+ expectLastCall().once();
// replay
replayAll();
@@ -278,19 +290,21 @@ public class UserResourceProviderTest extends EasyMockSupport {
AmbariMetaInfo ambariMetaInfo = injector.getInstance(AmbariMetaInfo.class);
ambariMetaInfo.init();
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
// add the property map to a set for the request. add more maps for multiple creates
Set<Map<String, Object>> propertySet = new LinkedHashSet<>();
- Map<String, Object> properties = new LinkedHashMap<>();
+ Map<String, Object> properties;
- // add properties to the request map
+ properties = new LinkedHashMap<>();
properties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "User100");
- properties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password");
+ properties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password100");
+ propertySet.add(properties);
+ properties = new LinkedHashMap<>();
+ properties.put(UserResourceProvider.USER_USERNAME_PROPERTY_ID, "user200");
+ properties.put(UserResourceProvider.USER_PASSWORD_PROPERTY_ID, "password200");
propertySet.add(properties);
// create the request
@@ -308,15 +322,23 @@ public class UserResourceProviderTest extends EasyMockSupport {
Users users = injector.getInstance(Users.class);
if ("admin".equals(authentication.getName())) {
- List<User> allUsers = Arrays.asList(
- createMockUser("User1"),
- createMockUser("User10"),
- createMockUser("User100"),
- createMockUser("admin")
- );
- expect(users.getAllUsers()).andReturn(allUsers).atLeastOnce();
+ UserEntity userEntity1 = createMockUserEntity("User1");
+ UserEntity userEntity10 = createMockUserEntity("User10");
+ UserEntity userEntity100 = createMockUserEntity("User100");
+ UserEntity userEntityAdmin = createMockUserEntity("admin");
+
+ List<UserEntity> allUsers = Arrays.asList(userEntity1, userEntity10, userEntity100, userEntityAdmin);
+
+ expect(users.getAllUserEntities()).andReturn(allUsers).once();
+ expect(users.hasAdminPrivilege(userEntity1)).andReturn(false).once();
+ expect(users.hasAdminPrivilege(userEntity10)).andReturn(false).once();
+ expect(users.hasAdminPrivilege(userEntity100)).andReturn(false).once();
+ expect(users.hasAdminPrivilege(userEntityAdmin)).andReturn(true).once();
} else {
- expect(users.getAnyUser("User1")).andReturn(createMockUser("User1")).atLeastOnce();
+
+ UserEntity userEntity = createMockUserEntity("User1");
+ expect(users.getUserEntity("User1")).andReturn(userEntity).once();
+ expect(users.hasAdminPrivilege(userEntity)).andReturn(false).once();
}
replayAll();
@@ -326,9 +348,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
Set<String> propertyIds = new HashSet<>();
propertyIds.add(UserResourceProvider.USER_USERNAME_PROPERTY_ID);
@@ -358,8 +378,11 @@ public class UserResourceProviderTest extends EasyMockSupport {
private void getResourceTest(Authentication authentication, String requestedUsername) throws Exception {
Injector injector = createInjector();
+ UserEntity userEntity = createMockUserEntity(requestedUsername);
+
Users users = injector.getInstance(Users.class);
- expect(users.getAnyUser(requestedUsername)).andReturn(createMockUser(requestedUsername)).atLeastOnce();
+ expect(users.getUserEntity(requestedUsername)).andReturn(userEntity).once();
+ expect(users.hasAdminPrivilege(userEntity)).andReturn(false).once();
replayAll();
@@ -368,9 +391,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
Set<String> propertyIds = new HashSet<>();
propertyIds.add(UserResourceProvider.USER_USERNAME_PROPERTY_ID);
@@ -389,14 +410,16 @@ public class UserResourceProviderTest extends EasyMockSupport {
verifyAll();
}
- public void updateResources_SetAdmin(Authentication authentication, String requestedUsername) throws Exception {
+ private void updateResources_SetAdmin(Authentication authentication, String requestedUsername) throws Exception {
Injector injector = createInjector();
+ UserEntity userEntity = createMockUserEntity(requestedUsername);
+
Users users = injector.getInstance(Users.class);
- expect(users.getAnyUser(requestedUsername)).andReturn(createMockUser(requestedUsername)).once();
+ expect(users.getUserEntity(requestedUsername)).andReturn(userEntity).once();
if ("admin".equals(authentication.getName())) {
- users.grantAdminPrivilege(requestedUsername.hashCode());
+ users.grantAdminPrivilege(userEntity);
expectLastCall().once();
}
@@ -407,9 +430,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
// add the property map to a set for the request.
Map<String, Object> properties = new LinkedHashMap<>();
@@ -423,14 +444,16 @@ public class UserResourceProviderTest extends EasyMockSupport {
verifyAll();
}
- public void updateResources_SetActive(Authentication authentication, String requestedUsername) throws Exception {
+ private void updateResources_SetActive(Authentication authentication, String requestedUsername) throws Exception {
Injector injector = createInjector();
+ UserEntity userEntity = createMockUserEntity(requestedUsername);
+
Users users = injector.getInstance(Users.class);
- expect(users.getAnyUser(requestedUsername)).andReturn(createMockUser(requestedUsername)).once();
+ expect(users.getUserEntity(requestedUsername)).andReturn(userEntity).once();
if ("admin".equals(authentication.getName())) {
- users.setUserActive(requestedUsername, true);
+ users.setUserActive(userEntity, true);
expectLastCall().once();
}
@@ -441,9 +464,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
// add the property map to a set for the request.
Map<String, Object> properties = new LinkedHashMap<>();
@@ -456,12 +477,14 @@ public class UserResourceProviderTest extends EasyMockSupport {
verifyAll();
}
- public void updateResources_SetPassword(Authentication authentication, String requestedUsername) throws Exception {
+ private void updateResources_SetPassword(Authentication authentication, String requestedUsername) throws Exception {
Injector injector = createInjector();
+ UserEntity userEntity = createMockUserEntity(requestedUsername);
+
Users users = injector.getInstance(Users.class);
- expect(users.getAnyUser(requestedUsername)).andReturn(createMockUser(requestedUsername)).once();
- users.modifyPassword(requestedUsername, "old_password", "new_password");
+ expect(users.getUserEntity(requestedUsername)).andReturn(userEntity).once();
+ users.modifyPassword(userEntity, "old_password", "new_password");
expectLastCall().once();
replayAll();
@@ -471,9 +494,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
// add the property map to a set for the request.
Map<String, Object> properties = new LinkedHashMap<>();
@@ -491,11 +512,11 @@ public class UserResourceProviderTest extends EasyMockSupport {
private void deleteResourcesTest(Authentication authentication, String requestedUsername) throws Exception {
Injector injector = createInjector();
- User user = createMockUser(requestedUsername);
+ UserEntity userEntity = createMockUserEntity(requestedUsername);
Users users = injector.getInstance(Users.class);
- expect(users.getAnyUser(requestedUsername)).andReturn(user).atLeastOnce();
- users.removeUser(user);
+ expect(users.getUserEntity(requestedUsername)).andReturn(userEntity).once();
+ users.removeUser(userEntity);
expectLastCall().atLeastOnce();
// replay
@@ -506,9 +527,7 @@ public class UserResourceProviderTest extends EasyMockSupport {
SecurityContextHolder.getContext().setAuthentication(authentication);
- AmbariManagementController managementController = injector.getInstance(AmbariManagementController.class);
-
- ResourceProvider provider = getResourceProvider(managementController);
+ ResourceProvider provider = getResourceProvider(injector);
provider.deleteResources(new RequestImpl(null, null, null, null), createPredicate(requestedUsername));
@@ -524,24 +543,23 @@ public class UserResourceProviderTest extends EasyMockSupport {
.toPredicate();
}
- private User createMockUser(String username) {
- User user = createMock(User.class);
- expect(user.getUserId()).andReturn(username.hashCode()).anyTimes();
- expect(user.getUserName()).andReturn(username).anyTimes();
- expect(user.getUserType()).andReturn(UserType.LOCAL).anyTimes();
- expect(user.isLdapUser()).andReturn(false).anyTimes();
- expect(user.isActive()).andReturn(true).anyTimes();
- expect(user.isAdmin()).andReturn(false).anyTimes();
- expect(user.getGroups()).andReturn(Collections.<String>emptyList()).anyTimes();
-
- return user;
+ private UserEntity createMockUserEntity(String username) {
+ UserEntity userEntity = createMock(UserEntity.class);
+ expect(userEntity.getUserId()).andReturn(username.hashCode()).anyTimes();
+ expect(userEntity.getUserName()).andReturn(username).anyTimes();
+ expect(userEntity.getActive()).andReturn(true).anyTimes();
+ expect(userEntity.getAuthenticationEntities()).andReturn(Collections.<UserAuthenticationEntity>emptyList()).anyTimes();
+ expect(userEntity.getMemberEntities()).andReturn(Collections.<MemberEntity>emptySet()).anyTimes();
+ return userEntity;
}
- private ResourceProvider getResourceProvider(AmbariManagementController managementController) {
- return AbstractControllerResourceProvider.getResourceProvider(
- Resource.Type.User,
+ private ResourceProvider getResourceProvider(Injector injector) {
+ UserResourceProvider resourceProvider = new UserResourceProvider(
PropertyHelper.getPropertyIds(Resource.Type.User),
PropertyHelper.getKeyPropertyIds(Resource.Type.User),
- managementController);
+ injector.getInstance(AmbariManagementController.class));
+
+ injector.injectMembers(resourceProvider);
+ return resourceProvider;
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java
index 271d536..99cc286 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/OrmTestHelper.java
@@ -227,8 +227,7 @@ public class OrmTestHelper {
PasswordEncoder encoder = injector.getInstance(PasswordEncoder.class);
UserEntity admin = new UserEntity();
- admin.setUserName(UserName.fromString("administrator"));
- admin.setUserPassword(encoder.encode("admin"));
+ admin.setUserName(UserName.fromString("administrator").toString());
admin.setPrincipal(principalEntity);
Set<UserEntity> users = new HashSet<>();
@@ -242,11 +241,9 @@ public class OrmTestHelper {
getEntityManager().persist(principalEntity);
UserEntity userWithoutRoles = new UserEntity();
- userWithoutRoles.setUserName(UserName.fromString("userWithoutRoles"));
- userWithoutRoles.setUserPassword(encoder.encode("test"));
+ userWithoutRoles.setUserName(UserName.fromString("userWithoutRoles").toString());
userWithoutRoles.setPrincipal(principalEntity);
userDAO.create(userWithoutRoles);
-
}
@Transactional
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/UserDAOTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/UserDAOTest.java b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/UserDAOTest.java
index 05733fa..e3c904d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/UserDAOTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/orm/dao/UserDAOTest.java
@@ -25,9 +25,6 @@ import static org.easymock.EasyMock.createStrictMock;
import static org.easymock.EasyMock.expect;
import static org.easymock.EasyMock.replay;
import static org.junit.Assert.assertEquals;
-import static org.junit.Assert.assertNull;
-
-import java.util.Arrays;
import javax.persistence.EntityManager;
import javax.persistence.TypedQuery;
@@ -35,7 +32,6 @@ import javax.persistence.TypedQuery;
import org.apache.ambari.server.orm.DBAccessor;
import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.security.authorization.UserName;
-import org.apache.ambari.server.security.authorization.UserType;
import org.junit.Test;
import com.google.inject.AbstractModule;
@@ -52,7 +48,7 @@ public class UserDAOTest {
private static String SERVICEOP_USER_NAME = "serviceopuser";
private UserDAO userDAO;
- public void init(UserEntity... usersInDB) {
+ public void init(UserEntity userInDB) {
final EntityManager entityManager = createStrictMock(EntityManager.class);
final DaoUtils daoUtils = createNiceMock(DaoUtils.class);
final DBAccessor dbAccessor = createNiceMock(DBAccessor.class);
@@ -68,55 +64,24 @@ public class UserDAOTest {
userDAO = mockInjector.getInstance(UserDAO.class);
TypedQuery<UserEntity> userQuery = createNiceMock(TypedQuery.class);
- expect(userQuery.getResultList()).andReturn(Arrays.asList(usersInDB));
+ expect(userQuery.getSingleResult()).andReturn(userInDB);
expect(entityManager.createNamedQuery(anyString(), anyObject(Class.class))).andReturn(userQuery);
replay(entityManager, daoUtils, dbAccessor, userQuery);
}
@Test
- public void testFindSingleUserByName_NoUsers() {
- init();
- assertNull(userDAO.findSingleUserByName(SERVICEOP_USER_NAME));
- }
-
- @Test
- public void testFindSingleUserByName_SingleUser() {
- init(user(UserType.PAM));
- assertEquals(UserType.PAM, userDAO.findSingleUserByName(SERVICEOP_USER_NAME).getUserType());
- }
-
- @Test
- public void testFindSingleUserByName_LocalIsFirstPrecedence() {
- init(user(UserType.LOCAL),
- user(UserType.LDAP),
- user(UserType.JWT),
- user(UserType.PAM));
- assertEquals(UserType.LOCAL, userDAO.findSingleUserByName(SERVICEOP_USER_NAME).getUserType());
- }
-
- @Test
- public void testFindSingleUserByName_LdapIsSecondPrecedence() {
- init(user(UserType.LDAP),
- user(UserType.JWT),
- user(UserType.PAM));
- assertEquals(UserType.LDAP, userDAO.findSingleUserByName(SERVICEOP_USER_NAME).getUserType());
- }
-
- @Test
- public void testFindSingleUserByName_JwtIsThirdPrecedence() {
- init(user(UserType.JWT),
- user(UserType.PAM));
- assertEquals(UserType.JWT, userDAO.findSingleUserByName(SERVICEOP_USER_NAME).getUserType());
+ public void testUserByName() {
+ init(user());
+ assertEquals(SERVICEOP_USER_NAME, userDAO.findUserByName(SERVICEOP_USER_NAME).getUserName());
}
- private static final UserEntity user(UserType type) {
- return user(SERVICEOP_USER_NAME, type);
+ private static final UserEntity user() {
+ return user(SERVICEOP_USER_NAME);
}
- private static final UserEntity user(String name, UserType type) {
+ private static final UserEntity user(String name) {
UserEntity userEntity = new UserEntity();
- userEntity.setUserName(UserName.fromString(name));
- userEntity.setUserType(type);
+ userEntity.setUserName(UserName.fromString(name).toString());
return userEntity;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/SecurityHelperImplTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/SecurityHelperImplTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/SecurityHelperImplTest.java
index f15f2f5..4d6d5a9 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/SecurityHelperImplTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/SecurityHelperImplTest.java
@@ -44,13 +44,14 @@ public class SecurityHelperImplTest {
SecurityContext ctx = SecurityContextHolder.getContext();
UserEntity userEntity = new UserEntity();
userEntity.setPrincipal(new PrincipalEntity());
- userEntity.setUserName(UserName.fromString("userName"));
+ userEntity.setUserName(UserName.fromString("userName").toString());
userEntity.setUserId(1);
User user = new User(userEntity);
Authentication auth = new AmbariUserAuthentication(null, user, null);
ctx.setAuthentication(auth);
- Assert.assertEquals("userName", SecurityHelperImpl.getInstance().getCurrentUserName());
+ // Username is expected to be lowercase
+ Assert.assertEquals("username", SecurityHelperImpl.getInstance().getCurrentUserName());
}
@Test
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariJWTAuthenticationFilterTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariJWTAuthenticationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariJWTAuthenticationFilterTest.java
index de5b768..961e65d 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariJWTAuthenticationFilterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/AmbariJWTAuthenticationFilterTest.java
@@ -37,10 +37,10 @@ import javax.servlet.http.HttpServletResponse;
import org.apache.ambari.server.audit.AuditLogger;
import org.apache.ambari.server.configuration.Configuration;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
+import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.security.AmbariEntryPoint;
import org.apache.ambari.server.security.authorization.PermissionHelper;
-import org.apache.ambari.server.security.authorization.User;
-import org.apache.ambari.server.security.authorization.UserType;
import org.apache.ambari.server.security.authorization.Users;
import org.apache.ambari.server.security.authorization.jwt.JwtAuthenticationProperties;
import org.easymock.EasyMockSupport;
@@ -83,13 +83,11 @@ public class AmbariJWTAuthenticationFilterTest extends EasyMockSupport {
Configuration configuration = createMock(Configuration.class);
expect(configuration.getJwtProperties()).andReturn(properties).once();
- User user = createMock(User.class);
- expect(user.getUserName()).andReturn("test-user").once();
- expect(user.getUserType()).andReturn(UserType.JWT).once();
+ UserEntity userEntity = createMock(UserEntity.class);
+ expect(userEntity.getAuthenticationEntities()).andReturn(Collections.<UserAuthenticationEntity>emptyList()).once();
Users users = createMock(Users.class);
- expect(users.getUser("test-user", UserType.JWT)).andReturn(user).once();
- expect(users.getUserAuthorities("test-user", UserType.JWT)).andReturn(null).once();
+ expect(users.getUserEntity("test-user")).andReturn(userEntity).once();
AuditLogger auditLogger = createMock(AuditLogger.class);
expect(auditLogger.isEnabled()).andReturn(false).times(2);
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariAuthToLocalUserDetailsServiceTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariAuthToLocalUserDetailsServiceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariAuthToLocalUserDetailsServiceTest.java
index 530bf65..c6ee706 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariAuthToLocalUserDetailsServiceTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariAuthToLocalUserDetailsServiceTest.java
@@ -24,9 +24,10 @@ import java.util.Collection;
import java.util.Collections;
import org.apache.ambari.server.configuration.Configuration;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
+import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.security.authorization.AmbariGrantedAuthority;
-import org.apache.ambari.server.security.authorization.User;
-import org.apache.ambari.server.security.authorization.UserType;
+import org.apache.ambari.server.security.authorization.UserAuthenticationType;
import org.apache.ambari.server.security.authorization.Users;
import org.easymock.EasyMockSupport;
import org.junit.Before;
@@ -53,15 +54,19 @@ public class AmbariAuthToLocalUserDetailsServiceTest extends EasyMockSupport {
Configuration configuration = createMock(Configuration.class);
expect(configuration.getKerberosAuthenticationProperties()).andReturn(properties).once();
- User user = createMock(User.class);
- expect(user.getUserName()).andReturn("user1").once();
- expect(user.getUserType()).andReturn(UserType.LDAP).once();
+ UserAuthenticationEntity kerberosAuthenticationEntity = createMock(UserAuthenticationEntity.class);
+ expect(kerberosAuthenticationEntity.getAuthenticationType()).andReturn(UserAuthenticationType.KERBEROS).anyTimes();
+ expect(kerberosAuthenticationEntity.getAuthenticationKey()).andReturn("user1@EXAMPLE.COM").anyTimes();
+
+ UserEntity userEntity = createMock(UserEntity.class);
+ expect(userEntity.getActive()).andReturn(true).once();
+ expect(userEntity.getAuthenticationEntities()).andReturn(Collections.singletonList(kerberosAuthenticationEntity)).once();
Collection<AmbariGrantedAuthority> userAuthorities = Collections.singletonList(createNiceMock(AmbariGrantedAuthority.class));
Users users = createMock(Users.class);
- expect(users.getUser("user1", UserType.LDAP)).andReturn(user).once();
- expect(users.getUserAuthorities("user1", UserType.LDAP)).andReturn(userAuthorities).once();
+ expect(users.getUserEntity("user1")).andReturn(userEntity).atLeastOnce();
+ expect(users.getUserAuthorities(userEntity)).andReturn(userAuthorities).atLeastOnce();
replayAll();
@@ -85,8 +90,7 @@ public class AmbariAuthToLocalUserDetailsServiceTest extends EasyMockSupport {
expect(configuration.getKerberosAuthenticationProperties()).andReturn(properties).once();
Users users = createMock(Users.class);
- expect(users.getUser("user1", UserType.LDAP)).andReturn(null).once();
- expect(users.getUser("user1", UserType.LOCAL)).andReturn(null).once();
+ expect(users.getUserEntity("user1")).andReturn(null).times(2);
replayAll();
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariKerberosAuthenticationPropertiesTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariKerberosAuthenticationPropertiesTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariKerberosAuthenticationPropertiesTest.java
index eb26cd8..bf170fe 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariKerberosAuthenticationPropertiesTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authentication/kerberos/AmbariKerberosAuthenticationPropertiesTest.java
@@ -18,11 +18,6 @@
package org.apache.ambari.server.security.authentication.kerberos;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.Collections;
-
-import org.apache.ambari.server.security.authorization.UserType;
import org.junit.Assert;
import org.junit.Test;
@@ -61,17 +56,6 @@ public class AmbariKerberosAuthenticationPropertiesTest {
}
@Test
- public void testOrderedUserTypes() throws Exception {
- AmbariKerberosAuthenticationProperties properties = new AmbariKerberosAuthenticationProperties();
-
- properties.setOrderedUserTypes(new ArrayList<>(Arrays.asList(UserType.LDAP, UserType.LOCAL)));
- Assert.assertEquals(new ArrayList<>(Arrays.asList(UserType.LDAP, UserType.LOCAL)), properties.getOrderedUserTypes());
-
- properties.setOrderedUserTypes(Collections.singletonList(UserType.JWT));
- Assert.assertEquals(new ArrayList<>(Collections.singletonList(UserType.JWT)), properties.getOrderedUserTypes());
- }
-
- @Test
public void testAuthToLocalRules() throws Exception {
AmbariKerberosAuthenticationProperties properties = new AmbariKerberosAuthenticationProperties();
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java
index 15e243e..1d46b89 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationFilterTest.java
@@ -317,11 +317,10 @@ public class AmbariAuthorizationFilterTest {
User user = EasyMock.createMock(User.class);
expect(user.getUserName()).andReturn("user1").anyTimes();
- expect(user.getUserType()).andReturn(UserType.LOCAL).anyTimes();
final Users users = EasyMock.createMock(Users.class);
- expect(users.getUser("user1", UserType.LOCAL)).andReturn(user).once();
- expect(users.getUserAuthorities("user1", UserType.LOCAL)).andReturn(Collections.<AmbariGrantedAuthority>emptyList()).once();
+ expect(users.getUser("user1")).andReturn(user).once();
+ expect(users.getUserAuthorities("user1")).andReturn(Collections.<AmbariGrantedAuthority>emptyList()).once();
replay(request, response, chain, configuration, users, user);
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationProviderDisableUserTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationProviderDisableUserTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationProviderDisableUserTest.java
index 891ab38..33100dd 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationProviderDisableUserTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariAuthorizationProviderDisableUserTest.java
@@ -18,10 +18,13 @@
package org.apache.ambari.server.security.authorization;
+import java.util.Collections;
+
import org.apache.ambari.server.orm.dao.MemberDAO;
import org.apache.ambari.server.orm.dao.PrivilegeDAO;
import org.apache.ambari.server.orm.dao.UserDAO;
import org.apache.ambari.server.orm.entities.PrincipalEntity;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
import org.apache.ambari.server.orm.entities.UserEntity;
import org.junit.Assert;
import org.junit.Before;
@@ -87,13 +90,18 @@ public class AmbariAuthorizationProviderDisableUserTest {
private void createUser(String login, boolean isActive) {
PrincipalEntity principalEntity = new PrincipalEntity();
+
+ UserAuthenticationEntity userAuthenticationEntity = new UserAuthenticationEntity();
+ userAuthenticationEntity.setAuthenticationType(UserAuthenticationType.LOCAL);
+ userAuthenticationEntity.setAuthenticationKey(encoder.encode("pwd"));
+
UserEntity activeUser = new UserEntity();
activeUser.setUserId(1);
activeUser.setActive(isActive);
- activeUser.setUserName(UserName.fromString(login));
- activeUser.setUserPassword(encoder.encode("pwd"));
+ activeUser.setUserName(UserName.fromString(login).toString());
+ activeUser.setAuthenticationEntities(Collections.singletonList(userAuthenticationEntity));
activeUser.setPrincipal(principalEntity);
- Mockito.when(userDAO.findLocalUserByName(login)).thenReturn(activeUser);
- Mockito.when(userDAO.findLdapUserByName(login)).thenReturn(activeUser);
+ Mockito.when(userDAO.findUserByName(login)).thenReturn(activeUser);
+ Mockito.when(userDAO.findUserByName(login)).thenReturn(activeUser);
}
}
\ No newline at end of file
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java
index 442414f..1bf122e 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderForDNWithSpaceTest.java
@@ -28,6 +28,7 @@ import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.controller.ControllerModule;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.dao.UserDAO;
+import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.security.ClientSecurityType;
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
@@ -104,8 +105,10 @@ public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLd
@Test
public void testAuthenticate() throws Exception {
- assertNull("User alread exists in DB", userDAO.findLdapUserByName("the allowedUser"));
- users.createUser("the allowedUser", "password", UserType.LDAP, true, false);
+ assertNull("User already exists in DB", userDAO.findUserByName("the allowedUser"));
+ UserEntity userEntity = users.createUser("the allowedUser", null, null);
+ users.addLdapAuthentication(userEntity, "some Dn");
+
Authentication authentication = new UsernamePasswordAuthenticationToken("the allowedUser", "password");
Authentication result = authenticationProvider.authenticate(authentication);
assertTrue(result.isAuthenticated());
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
index 4941bc7..d9eb335 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderTest.java
@@ -181,9 +181,11 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati
@Test
public void testAuthenticate() throws Exception {
- assertNull("User alread exists in DB", userDAO.findLdapUserByName("allowedUser"));
- users.createUser("allowedUser", "password", UserType.LDAP, true, false);
- UserEntity ldapUser = userDAO.findLdapUserByName("allowedUser");
+ assertNull("User alread exists in DB", userDAO.findUserByName("allowedUser"));
+ UserEntity userEntity = users.createUser("allowedUser", null, null);
+ users.addLdapAuthentication(userEntity, "some dn");
+
+ UserEntity ldapUser = userDAO.findUserByName("allowedUser");
Authentication authentication = new UsernamePasswordAuthenticationToken("allowedUser", "password");
AmbariAuthentication result = (AmbariAuthentication) authenticationProvider.authenticate(authentication);
@@ -206,8 +208,10 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati
@Test
public void testAuthenticateLoginAlias() throws Exception {
// Given
- assertNull("User already exists in DB", userDAO.findLdapUserByName("allowedUser@ambari.apache.org"));
- users.createUser("allowedUser@ambari.apache.org", "password", UserType.LDAP, true, false);
+ assertNull("User already exists in DB", userDAO.findUserByName("allowedUser@ambari.apache.org"));
+ UserEntity userEntity = users.createUser("allowedUser@ambari.apache.org", null, null);
+ users.addLdapAuthentication(userEntity, "some dn");
+
Authentication authentication = new UsernamePasswordAuthenticationToken("allowedUser@ambari.apache.org", "password");
configuration.setProperty(Configuration.LDAP_ALT_USER_SEARCH_ENABLED.getKey(), "true");
@@ -221,7 +225,7 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati
@Test(expected = InvalidUsernamePasswordCombinationException.class)
public void testBadCredentialsForMissingLoginAlias() throws Exception {
// Given
- assertNull("User already exists in DB", userDAO.findLdapUserByName("allowedUser"));
+ assertNull("User already exists in DB", userDAO.findUserByName("allowedUser"));
Authentication authentication = new UsernamePasswordAuthenticationToken("missingloginalias@ambari.apache.org", "password");
configuration.setProperty(Configuration.LDAP_ALT_USER_SEARCH_ENABLED.getKey(), "true");
@@ -237,7 +241,7 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati
@Test(expected = InvalidUsernamePasswordCombinationException.class)
public void testBadCredentialsBadPasswordForLoginAlias() throws Exception {
// Given
- assertNull("User already exists in DB", userDAO.findLdapUserByName("allowedUser"));
+ assertNull("User already exists in DB", userDAO.findUserByName("allowedUser"));
Authentication authentication = new UsernamePasswordAuthenticationToken("allowedUser@ambari.apache.org", "bad_password");
configuration.setProperty(Configuration.LDAP_ALT_USER_SEARCH_ENABLED.getKey(), "true");
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserProviderTest.java
index 2362823..65a5400 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLocalUserProviderTest.java
@@ -25,12 +25,15 @@ import static org.junit.Assert.assertEquals;
import static org.junit.Assert.assertNotNull;
import static org.junit.Assert.assertTrue;
+import java.util.Collections;
+
import org.apache.ambari.server.H2DatabaseCleaner;
import org.apache.ambari.server.audit.AuditLoggerModule;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.OrmTestHelper;
import org.apache.ambari.server.orm.dao.UserDAO;
import org.apache.ambari.server.orm.entities.PrincipalEntity;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
import org.apache.ambari.server.orm.entities.UserEntity;
import org.junit.AfterClass;
import org.junit.Before;
@@ -81,9 +84,9 @@ public class AmbariLocalUserProviderTest {
UserEntity userEntity = combineUserEntity();
expect(authentication.getName()).andReturn(TEST_USER_NAME);
- expect(userDAO.findLocalUserByName(TEST_USER_NAME)).andReturn(userEntity);
+ expect(userDAO.findUserByName(TEST_USER_NAME)).andReturn(userEntity);
expect(authentication.getCredentials()).andReturn(TEST_USER_PASS).anyTimes();
- expect(users.getUserAuthorities(userEntity.getUserName(), userEntity.getUserType())).andReturn(null);
+ expect(users.getUserAuthorities(userEntity)).andReturn(null);
replay(users, userDAO, authentication);
@@ -105,7 +108,7 @@ public class AmbariLocalUserProviderTest {
Authentication authentication = createMock(Authentication.class);
expect(authentication.getName()).andReturn(TEST_USER_NAME);
- expect(userDAO.findLocalUserByName(TEST_USER_NAME)).andReturn(null);
+ expect(userDAO.findUserByName(TEST_USER_NAME)).andReturn(null);
replay(users, userDAO, authentication);
@@ -122,7 +125,7 @@ public class AmbariLocalUserProviderTest {
UserEntity userEntity = combineUserEntity();
expect(authentication.getName()).andReturn(TEST_USER_NAME);
- expect(userDAO.findLocalUserByName(TEST_USER_NAME)).andReturn(userEntity);
+ expect(userDAO.findUserByName(TEST_USER_NAME)).andReturn(userEntity);
expect(authentication.getCredentials()).andReturn(null);
replay(users, userDAO, authentication);
@@ -140,7 +143,7 @@ public class AmbariLocalUserProviderTest {
UserEntity userEntity = combineUserEntity();
expect(authentication.getName()).andReturn(TEST_USER_NAME);
- expect(userDAO.findLocalUserByName(TEST_USER_NAME)).andReturn(userEntity);
+ expect(userDAO.findUserByName(TEST_USER_NAME)).andReturn(userEntity);
expect(authentication.getCredentials()).andReturn(TEST_USER_INCORRECT_PASS).anyTimes();
replay(users, userDAO, authentication);
@@ -153,13 +156,16 @@ public class AmbariLocalUserProviderTest {
private UserEntity combineUserEntity() {
PrincipalEntity principalEntity = new PrincipalEntity();
+
+ UserAuthenticationEntity userAuthenticationEntity = new UserAuthenticationEntity();
+ userAuthenticationEntity.setAuthenticationType(UserAuthenticationType.LOCAL);
+ userAuthenticationEntity.setAuthenticationKey(passwordEncoder.encode(TEST_USER_PASS));
+
UserEntity userEntity = new UserEntity();
userEntity.setUserId(1);
- userEntity.setUserName(UserName.fromString(TEST_USER_NAME));
- userEntity.setUserPassword(passwordEncoder.encode(TEST_USER_PASS));
- userEntity.setUserType(UserType.LOCAL);
+ userEntity.setUserName(UserName.fromString(TEST_USER_NAME).toString());
userEntity.setPrincipal(principalEntity);
-
+ userEntity.setAuthenticationEntities(Collections.singletonList(userAuthenticationEntity));
return userEntity;
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariPamAuthenticationProviderTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariPamAuthenticationProviderTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariPamAuthenticationProviderTest.java
index 8faa6ce..1145954 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariPamAuthenticationProviderTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariPamAuthenticationProviderTest.java
@@ -20,10 +20,8 @@ package org.apache.ambari.server.security.authorization;
import static org.easymock.EasyMock.createNiceMock;
import static org.easymock.EasyMock.expect;
-import java.util.Arrays;
import java.util.Collection;
import java.util.Collections;
-import java.util.HashSet;
import org.apache.ambari.server.H2DatabaseCleaner;
import org.apache.ambari.server.audit.AuditLoggerModule;
@@ -31,6 +29,7 @@ import org.apache.ambari.server.configuration.Configuration;
import org.apache.ambari.server.orm.GuiceJpaInitializer;
import org.apache.ambari.server.orm.dao.UserDAO;
import org.apache.ambari.server.orm.entities.PrincipalEntity;
+import org.apache.ambari.server.orm.entities.UserAuthenticationEntity;
import org.apache.ambari.server.orm.entities.UserEntity;
import org.apache.ambari.server.security.ClientSecurityType;
import org.easymock.EasyMock;
@@ -41,7 +40,6 @@ import org.jvnet.libpam.PAM;
import org.jvnet.libpam.UnixUser;
import org.springframework.security.core.Authentication;
import org.springframework.security.core.AuthenticationException;
-import org.springframework.security.crypto.password.PasswordEncoder;
import com.google.inject.Guice;
import com.google.inject.Inject;
@@ -54,15 +52,11 @@ public class AmbariPamAuthenticationProviderTest {
private static Injector injector;
@Inject
- PasswordEncoder passwordEncoder;
- @Inject
private AmbariPamAuthenticationProvider authenticationProvider;
@Inject
- Configuration configuration;
+ private Configuration configuration;
private static final String TEST_USER_NAME = "userName";
- private static final String TEST_USER_PASS = "userPass";
- private static final String TEST_USER_INCORRECT_PASS = "userIncorrectPass";
@Before
public void setUp() {
@@ -91,12 +85,13 @@ public class AmbariPamAuthenticationProviderTest {
public void testAuthenticate() throws Exception {
PAM pam = createNiceMock(PAM.class);
UnixUser unixUser = createNiceMock(UnixUser.class);
+ expect(unixUser.getUserName()).andReturn(TEST_USER_NAME).atLeastOnce();
UserEntity userEntity = combineUserEntity();
User user = new User(userEntity);
UserDAO userDAO = createNiceMock(UserDAO.class);
Collection<AmbariGrantedAuthority> userAuthorities = Collections.singletonList(createNiceMock(AmbariGrantedAuthority.class));
expect(pam.authenticate(EasyMock.anyObject(String.class), EasyMock.anyObject(String.class))).andReturn(unixUser).atLeastOnce();
- expect(unixUser.getGroups()).andReturn(new HashSet<>(Arrays.asList("group"))).atLeastOnce();
+ expect(unixUser.getGroups()).andReturn(Collections.singleton("group")).atLeastOnce();
EasyMock.replay(unixUser);
EasyMock.replay(pam);
Authentication authentication = new AmbariUserAuthentication("userPass", user, userAuthorities);
@@ -120,12 +115,16 @@ public class AmbariPamAuthenticationProviderTest {
private UserEntity combineUserEntity() {
PrincipalEntity principalEntity = new PrincipalEntity();
+
+ UserAuthenticationEntity userAuthenticationEntity = new UserAuthenticationEntity();
+ userAuthenticationEntity.setAuthenticationType(UserAuthenticationType.PAM);
+ userAuthenticationEntity.setAuthenticationKey(TEST_USER_NAME);
+
UserEntity userEntity = new UserEntity();
userEntity.setUserId(1);
- userEntity.setUserName(UserName.fromString(TEST_USER_NAME));
- userEntity.setUserPassword(passwordEncoder.encode(TEST_USER_PASS));
- userEntity.setUserType(UserType.PAM);
+ userEntity.setUserName(UserName.fromString(TEST_USER_NAME).toString());
userEntity.setPrincipal(principalEntity);
+ userEntity.setAuthenticationEntities(Collections.singletonList(userAuthenticationEntity));
return userEntity;
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariUserAuthenticationFilterTest.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariUserAuthenticationFilterTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariUserAuthenticationFilterTest.java
index 0483b04..7c3a7fd 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariUserAuthenticationFilterTest.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariUserAuthenticationFilterTest.java
@@ -72,10 +72,11 @@ public class AmbariUserAuthenticationFilterTest {
expect(tokenStorage.isValidInternalToken(TEST_INTERNAL_TOKEN)).andReturn(true);
expect(request.getHeader(ExecutionScheduleManager.USER_ID_HEADER)).andReturn(TEST_USER_ID_HEADER);
- User user = combineUser();
+ UserEntity userEntity = createUserEntity();
- expect(users.getUser(TEST_USER_ID)).andReturn(user);
- expect(users.getUserAuthorities(user.getUserName(), user.getUserType())).andReturn(new HashSet<AmbariGrantedAuthority>());
+ expect(users.getUserEntity(TEST_USER_ID)).andReturn(userEntity);
+ expect(users.getUserAuthorities(userEntity)).andReturn(new HashSet<AmbariGrantedAuthority>());
+ expect(users.getUser(userEntity)).andReturn(new User(userEntity));
Capture<String> userHeaderValue = newCapture();
response.setHeader(eq("User"), capture(userHeaderValue));
expectLastCall();
@@ -93,7 +94,7 @@ public class AmbariUserAuthenticationFilterTest {
Authentication authentication = SecurityContextHolder.getContext().getAuthentication();
assertNotNull(authentication);
assertEquals(true, authentication.isAuthenticated());
- assertEquals(TEST_USER_NAME, userHeaderValue.getValue());
+ assertEquals(TEST_USER_NAME.toLowerCase(), userHeaderValue.getValue());
}
@Test
@@ -158,7 +159,7 @@ public class AmbariUserAuthenticationFilterTest {
expect(tokenStorage.isValidInternalToken(TEST_INTERNAL_TOKEN)).andReturn(true);
expect(request.getHeader(ExecutionScheduleManager.USER_ID_HEADER)).andReturn(TEST_USER_ID_HEADER);
- expect(users.getUser(TEST_USER_ID)).andReturn(null);
+ expect(users.getUserEntity(TEST_USER_ID)).andReturn(null);
response.sendError(HttpServletResponse.SC_FORBIDDEN, "Authentication required");
expectLastCall();
@@ -204,15 +205,12 @@ public class AmbariUserAuthenticationFilterTest {
assertNull(authentication);
}
- private User combineUser() {
+ private UserEntity createUserEntity() {
PrincipalEntity principalEntity = new PrincipalEntity();
UserEntity userEntity = new UserEntity();
userEntity.setUserId(TEST_USER_ID);
- userEntity.setUserName(UserName.fromString(TEST_USER_NAME));
- userEntity.setUserType(UserType.LOCAL);
+ userEntity.setUserName(UserName.fromString(TEST_USER_NAME).toString());
userEntity.setPrincipal(principalEntity);
- User user = new User(userEntity);
-
- return user;
+ return userEntity;
}
}
http://git-wip-us.apache.org/repos/asf/ambari/blob/f76c87a6/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestAmbariLdapAuthoritiesPopulator.java
----------------------------------------------------------------------
diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestAmbariLdapAuthoritiesPopulator.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestAmbariLdapAuthoritiesPopulator.java
index fff39d8..314e8d8 100644
--- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestAmbariLdapAuthoritiesPopulator.java
+++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/TestAmbariLdapAuthoritiesPopulator.java
@@ -64,7 +64,7 @@ public class TestAmbariLdapAuthoritiesPopulator extends EasyMockSupport {
expect(userEntity.getActive()).andReturn(true);
expect(users.getUserPrivileges(userEntity)).andReturn(Collections.singletonList(privilegeEntity));
- expect(userDAO.findLdapUserByName(username)).andReturn(userEntity);
+ expect(userDAO.findUserByName(username)).andReturn(userEntity);
replayAll();
populator.getGrantedAuthorities(userData, username);
@@ -90,7 +90,7 @@ public class TestAmbariLdapAuthoritiesPopulator extends EasyMockSupport {
expect(userEntity.getActive()).andReturn(true);
expect(users.getUserPrivileges(userEntity)).andReturn(Collections.singletonList(privilegeEntity));
- expect(userDAO.findLdapUserByName(ambariUserName)).andReturn(userEntity); // user should be looked up by user name instead of login alias
+ expect(userDAO.findUserByName(ambariUserName)).andReturn(userEntity); // user should be looked up by user name instead of login alias
replayAll();