Repository: ambari Updated Branches: refs/heads/trunk 3ba1889f4 -> 74f9ddcf8
AMBARI-8578. Update Apache Directory Server Library from 1.5.5 to 2.0.0-M19 Project: http://git-wip-us.apache.org/repos/asf/ambari/repo Commit: http://git-wip-us.apache.org/repos/asf/ambari/commit/74f9ddcf Tree: http://git-wip-us.apache.org/repos/asf/ambari/tree/74f9ddcf Diff: http://git-wip-us.apache.org/repos/asf/ambari/diff/74f9ddcf Branch: refs/heads/trunk Commit: 74f9ddcf8b0d9a8c0650de7352015745e8e2af28 Parents: 3ba1889 Author: Robert Levas <rle...@hortonworks.com> Authored: Mon Dec 8 14:06:00 2014 -0500 Committer: John Speidel <jspei...@hortonworks.com> Committed: Mon Dec 8 14:07:27 2014 -0500 ---------------------------------------------------------------------- ambari-project/pom.xml | 35 +++++++++++++- ambari-server/pom.xml | 27 +++++++++++ ...mbariLdapAuthenticationProviderBaseTest.java | 48 +++++++++++-------- ...uthenticationProviderForDNWithSpaceTest.java | 47 ++++++++++++------- .../AmbariLdapAuthenticationProviderTest.java | 49 +++++++++++++------- ambari-server/src/test/resources/users.ldif | 2 +- .../test/resources/users_for_dn_with_space.ldif | 2 +- 7 files changed, 154 insertions(+), 56 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/ambari-project/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-project/pom.xml b/ambari-project/pom.xml index edba1dc..930080e 100644 --- a/ambari-project/pom.xml +++ b/ambari-project/pom.xml @@ -186,13 +186,44 @@ </dependency> <dependency> <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-server-annotations</artifactId> + <version>2.0.0-M19</version> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-core-integ</artifactId> + <version>2.0.0-M19</version> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-server-integ</artifactId> + <version>2.0.0-M19</version> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-jdbm</artifactId> + <version>2.0.0-M5</version> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-kerberos-codec</artifactId> + <version>2.0.0-M19</version> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-core</artifactId> - <version>1.5.5</version> + <version>2.0.0-M19</version> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-protocol-ldap</artifactId> - <version>1.5.5</version> + <version>2.0.0-M19</version> + <exclusions> + <exclusion> + <groupId>org.apache.directory.jdbm</groupId> + <artifactId>apacheds-jdbm1</artifactId> + </exclusion> + </exclusions> </dependency> <dependency> <groupId>org.apache.directory.shared</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/ambari-server/pom.xml ---------------------------------------------------------------------- diff --git a/ambari-server/pom.xml b/ambari-server/pom.xml index 4076d73..b11538d 100644 --- a/ambari-server/pom.xml +++ b/ambari-server/pom.xml @@ -1433,15 +1433,42 @@ </dependency> <dependency> <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-server-annotations</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-core-integ</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-server-integ</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-jdbm</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> + <artifactId>apacheds-kerberos-codec</artifactId> + </dependency> + <dependency> + <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-core</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.apache.directory.server</groupId> <artifactId>apacheds-protocol-ldap</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.apache.directory.shared</groupId> <artifactId>shared-ldap</artifactId> + <scope>test</scope> </dependency> <dependency> <groupId>org.slf4j</groupId> http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderBaseTest.java ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderBaseTest.java b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderBaseTest.java index 2a323f8..ae4757f 100644 --- a/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderBaseTest.java +++ b/ambari-server/src/test/java/org/apache/ambari/server/security/authorization/AmbariLdapAuthenticationProviderBaseTest.java @@ -18,33 +18,41 @@ package org.apache.ambari.server.security.authorization; -import org.apache.commons.io.FileUtils; +import org.apache.directory.server.core.api.DirectoryService; +import org.apache.directory.server.core.integ.AbstractLdapTestUnit; +import org.apache.directory.server.kerberos.kdc.KdcServer; +import org.apache.directory.server.ldap.LdapServer; import org.easymock.EasyMockSupport; -import java.io.File; -import java.io.IOException; -import java.text.SimpleDateFormat; -import java.util.Date; +public class AmbariLdapAuthenticationProviderBaseTest extends EasyMockSupport { -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; + public static DirectoryService getService() { + return AbstractLdapTestUnit.service; + } -public class AmbariLdapAuthenticationProviderBaseTest extends EasyMockSupport { - private static final Log logger = LogFactory.getLog(AmbariLdapAuthenticationProviderBaseTest.class); + public static void setService(DirectoryService service) { + AbstractLdapTestUnit.service = service; + } + + + public static LdapServer getLdapServer() { + return AbstractLdapTestUnit.ldapServer; + } + + + public static void setLdapServer(LdapServer ldapServer) { + AbstractLdapTestUnit.ldapServer = ldapServer; + } + + + public static KdcServer getKdcServer() { + return AbstractLdapTestUnit.kdcServer; + } - protected static void createCleanApacheDSContainerWorkDir() throws IOException{ - // Set ApacheDsContainer's work dir under the current folder (Jenkins' job workspace) instead of the default /tmp/apacheds-spring-security. See AMBARI-7180 - SimpleDateFormat sdf = new SimpleDateFormat("HHmmss"); - String timestamp = sdf.format(new Date()); - final String workParent = new File(".").getAbsolutePath() + File.separator + "target" + File.separator + timestamp; - new File(workParent).mkdirs(); - // The folder structure looks like {job-root}/target/{timestamp}/apacheds-spring-security - final String apacheDSWorkDir = workParent + File.separator + "apacheds-spring-security"; - FileUtils.deleteDirectory(new File(apacheDSWorkDir)); - System.setProperty("apacheDSWorkDir", apacheDSWorkDir ); - logger.info("System property apacheDSWorkDir was set to " + apacheDSWorkDir); + public static void setKdcServer(KdcServer kdcServer) { + AbstractLdapTestUnit.kdcServer = kdcServer; } } http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/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 c04af86..da8d9bc 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 @@ -25,16 +25,44 @@ 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.security.ClientSecurityType; +import org.apache.directory.server.annotations.CreateLdapServer; +import org.apache.directory.server.annotations.CreateTransport; +import org.apache.directory.server.core.annotations.ApplyLdifFiles; +import org.apache.directory.server.core.annotations.ContextEntry; +import org.apache.directory.server.core.annotations.CreateDS; +import org.apache.directory.server.core.annotations.CreatePartition; +import org.apache.directory.server.core.integ.AbstractLdapTestUnit; +import org.apache.directory.server.core.integ.FrameworkRunner; import org.junit.*; +import org.junit.runner.RunWith; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; -import org.springframework.security.ldap.server.ApacheDSContainer; import static org.junit.Assert.*; -public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLdapAuthenticationProviderBaseTest{ - private static ApacheDSContainer apacheDSContainer; +@RunWith(FrameworkRunner.class) +@CreateDS(allowAnonAccess = true, + name = "Test", + partitions = { + @CreatePartition(name = "Root", + suffix = "dc=the apache,dc=org", + contextEntry = @ContextEntry( + entryLdif = + "dn: dc=the apache,dc=org\n" + + "dc: the apache\n" + + "objectClass: top\n" + + "objectClass: domain\n\n" + + "dn: dc=ambari,dc=the apache,dc=org\n" + + "dc: ambari\n" + + "objectClass: top\n" + + "objectClass: domain\n\n")) + }) +@CreateLdapServer(allowAnonymousAccess = true, + transports = {@CreateTransport(protocol = "LDAP", port = 33389)}) +@ApplyLdifFiles("users_for_dn_with_space.ldif") +public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLdapAuthenticationProviderBaseTest { + private static Injector injector; @Inject @@ -44,14 +72,6 @@ public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLd @Inject Configuration configuration; - @BeforeClass - public static void beforeClass() throws Exception{ - createCleanApacheDSContainerWorkDir(); - apacheDSContainer = new ApacheDSContainer("dc=ambari,dc=the apache,dc=org", "classpath:/users_for_dn_with_space.ldif"); - apacheDSContainer.setPort(33389); - apacheDSContainer.afterPropertiesSet(); - } - @Before public void setUp() { injector = Guice.createInjector(new AuthorizationTestModuleForLdapDNWithSpace()); @@ -88,9 +108,4 @@ public class AmbariLdapAuthenticationProviderForDNWithSpaceTest extends AmbariLd Authentication auth = authenticationProvider.authenticate(authentication); assertTrue(auth == null); } - - @AfterClass - public static void afterClass() { - apacheDSContainer.stop(); - } } http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/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 6bc692c..d48be85 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 @@ -27,24 +27,54 @@ 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.security.ClientSecurityType; +import org.apache.directory.server.annotations.CreateLdapServer; +import org.apache.directory.server.annotations.CreateTransport; +import org.apache.directory.server.core.annotations.ApplyLdifFiles; +import org.apache.directory.server.core.annotations.ContextEntry; +import org.apache.directory.server.core.annotations.CreateDS; +import org.apache.directory.server.core.annotations.CreatePartition; +import org.apache.directory.server.core.api.DirectoryService; +import org.apache.directory.server.core.integ.AbstractLdapTestUnit; +import org.apache.directory.server.core.integ.FrameworkRunner; +import org.apache.directory.server.kerberos.kdc.KdcServer; +import org.apache.directory.server.ldap.LdapServer; +import org.easymock.EasyMockSupport; import org.easymock.IAnswer; import org.junit.After; import org.junit.AfterClass; import org.junit.Before; -import org.junit.BeforeClass; import org.junit.Test; +import org.junit.runner.RunWith; import org.slf4j.Logger; import org.springframework.security.authentication.BadCredentialsException; import org.springframework.security.authentication.UsernamePasswordAuthenticationToken; import org.springframework.security.core.Authentication; -import org.springframework.security.ldap.server.ApacheDSContainer; import static org.easymock.EasyMock.*; import static org.junit.Assert.*; +@RunWith(FrameworkRunner.class) +@CreateDS(allowAnonAccess = true, + name = "Test", + partitions = { + @CreatePartition(name = "Root", + suffix = "dc=apache,dc=org", + contextEntry = @ContextEntry( + entryLdif = + "dn: dc=apache,dc=org\n" + + "dc: apache\n" + + "objectClass: top\n" + + "objectClass: domain\n\n" + + "dn: dc=ambari,dc=apache,dc=org\n" + + "dc: ambari\n" + + "objectClass: top\n" + + "objectClass: domain\n\n")) + }) +@CreateLdapServer(allowAnonymousAccess = true, + transports = {@CreateTransport(protocol = "LDAP", port = 33389)}) +@ApplyLdifFiles("users.ldif") public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticationProviderBaseTest { - private static ApacheDSContainer apacheDSContainer; private static Injector injector; @Inject @@ -54,14 +84,6 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati @Inject Configuration configuration; - @BeforeClass - public static void beforeClass() throws Exception{ - createCleanApacheDSContainerWorkDir(); - apacheDSContainer = new ApacheDSContainer("dc=ambari,dc=apache,dc=org", "classpath:/users.ldif"); - apacheDSContainer.setPort(33389); - apacheDSContainer.afterPropertiesSet(); - } - @Before public void setUp() { injector = Guice.createInjector(new AuthorizationTestModule()); @@ -167,9 +189,4 @@ public class AmbariLdapAuthenticationProviderTest extends AmbariLdapAuthenticati Authentication auth = authenticationProvider.authenticate(authentication); Assert.assertTrue(auth == null); } - - @AfterClass - public static void afterClass() { - apacheDSContainer.stop(); - } } http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/ambari-server/src/test/resources/users.ldif ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/resources/users.ldif b/ambari-server/src/test/resources/users.ldif index 1f8557e..3620e63 100644 --- a/ambari-server/src/test/resources/users.ldif +++ b/ambari-server/src/test/resources/users.ldif @@ -46,6 +46,6 @@ userPassword:password dn: cn=Ambari Administrators,ou=groups,dc=ambari,dc=apache,dc=org objectclass:top -objectclass:group +objectclass:groupOfNames cn: Ambari Administrators member: uid=allowedAdmin,ou=people,dc=ambari,dc=apache,dc=org http://git-wip-us.apache.org/repos/asf/ambari/blob/74f9ddcf/ambari-server/src/test/resources/users_for_dn_with_space.ldif ---------------------------------------------------------------------- diff --git a/ambari-server/src/test/resources/users_for_dn_with_space.ldif b/ambari-server/src/test/resources/users_for_dn_with_space.ldif index 5e8f8cf..1cdcb4c 100644 --- a/ambari-server/src/test/resources/users_for_dn_with_space.ldif +++ b/ambari-server/src/test/resources/users_for_dn_with_space.ldif @@ -46,6 +46,6 @@ userPassword:password dn: cn=Ambari Administrators,ou=the groups,dc=ambari,dc=the apache,dc=org objectclass:top -objectclass:group +objectclass:groupOfNames cn: Ambari Administrators member: uid=allowedAdmin,ou=the people,dc=ambari,dc=the apache,dc=org