[KARAF-3934] Update Apache Directory and make use of random port generator. Patch supplied by Colm O hEigeartaigh.
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
index 25579b4..cf560c5 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapCaseInsensitiveDNTest.java
@@ -19,6 +19,8 @@
import static org.junit.Assert.assertTrue;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.security.Principal;
@@ -29,6 +31,7 @@
import javax.security.auth.callback.PasswordCallback;
import javax.security.auth.callback.UnsupportedCallbackException;
+import org.apache.commons.io.IOUtils;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.message.ModifyRequest;
import org.apache.directory.api.ldap.model.message.ModifyRequestImpl;
@@ -50,7 +53,7 @@
import org.junit.runner.RunWith;
@RunWith ( FrameworkRunner.class )
-@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP", port=9999)})
+@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP")})
@CreateDS(name = "LdapCaseInsensitiveDNTest-class",
partitions = { @CreatePartition(name = "example", suffix = "dc=example,dc=com") })
@ApplyLdifFiles(
@@ -58,6 +61,33 @@
)
public class LdapCaseInsensitiveDNTest extends LdapLoginModuleTest {
+ private static boolean portUpdated;
+
+ @Before
+ @Override
+ public void updatePort() throws Exception {
+ if (!portUpdated) {
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+
+ // Read in ldap.properties and substitute in the correct port
+ File f = new File(basedir + "/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties");
+
+ FileInputStream inputStream = new FileInputStream(f);
+ String content = IOUtils.toString(inputStream, "UTF-8");
+ inputStream.close();
+ content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+
+ File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties");
+ FileOutputStream outputStream = new FileOutputStream(f2);
+ IOUtils.write(content, outputStream, "UTF-8");
+ outputStream.close();
+ portUpdated = true;
+ }
+ }
+
@Test
public void testCaseInsensitiveDN() throws Exception {
Properties options = ldapLoginModuleOptions();
@@ -101,7 +131,12 @@
}
protected Properties ldapLoginModuleOptions() throws IOException {
- return new Properties(new File("src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties"));
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+ File file = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties");
+ return new Properties(file);
}
}
\ No newline at end of file
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
index b686f10..b913f65 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleTest.java
@@ -17,6 +17,7 @@
import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
import org.apache.directory.server.core.integ.FrameworkRunner;
+import org.apache.commons.io.IOUtils;
import org.apache.directory.server.annotations.CreateLdapServer;
import org.apache.directory.server.annotations.CreateTransport;
import org.apache.directory.server.core.annotations.ApplyLdifFiles;
@@ -26,6 +27,7 @@
import org.apache.karaf.jaas.boot.principal.RolePrincipal;
import org.apache.karaf.jaas.boot.principal.UserPrincipal;
import org.junit.After;
+import org.junit.Before;
import org.junit.Test;
import org.junit.runner.RunWith;
@@ -34,6 +36,8 @@
import javax.security.auth.login.LoginException;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
import java.security.Principal;
import java.util.ArrayList;
@@ -46,14 +50,40 @@
import static org.junit.Assert.fail;
@RunWith(FrameworkRunner.class)
-@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP", port = 9999)})
+@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP")})
@CreateDS(name = "LdapLoginModuleTest-class",
partitions = {@CreatePartition(name = "example", suffix = "dc=example,dc=com")})
@ApplyLdifFiles(
"org/apache/karaf/jaas/modules/ldap/example.com.ldif"
)
public class LdapLoginModuleTest extends AbstractLdapTestUnit {
+
+ private static boolean portUpdated;
+ @Before
+ public void updatePort() throws Exception {
+ if (!portUpdated) {
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+
+ // Read in ldap.properties and substitute in the correct port
+ File f = new File(basedir + "/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties");
+
+ FileInputStream inputStream = new FileInputStream(f);
+ String content = IOUtils.toString(inputStream, "UTF-8");
+ inputStream.close();
+ content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+
+ File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
+ FileOutputStream outputStream = new FileOutputStream(f2);
+ IOUtils.write(content, outputStream, "UTF-8");
+ outputStream.close();
+ portUpdated = true;
+ }
+ }
+
@After
public void tearDown() {
LDAPCache.clear();
@@ -102,7 +132,12 @@
}
protected Properties ldapLoginModuleOptions() throws IOException {
- return new Properties(new File("src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties"));
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+ File file = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
+ return new Properties(file);
}
@Test
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
index bb80280..017eb27 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapLoginModuleWithEscapesTest.java
@@ -16,20 +16,54 @@
package org.apache.karaf.jaas.modules.ldap;
import org.apache.directory.server.core.integ.FrameworkRunner;
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+
+import org.apache.commons.io.IOUtils;
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.CreateDS;
import org.apache.directory.server.core.annotations.CreatePartition;
+import org.junit.Before;
import org.junit.runner.RunWith;
@RunWith ( FrameworkRunner.class )
-@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP", port=9999)})
+@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP")})
@CreateDS(name = "LdapLoginModuleWithEscapesTest-class",
partitions = { @CreatePartition(name = "example", suffix = "dc=example,dc=com") })
@ApplyLdifFiles(
"org/apache/karaf/jaas/modules/ldap/example.com_with_escapes.ldif"
)
public class LdapLoginModuleWithEscapesTest extends LdapLoginModuleTest {
+
+ private static boolean portUpdated;
+
+ @Before
+ @Override
+ public void updatePort() throws Exception {
+ if (!portUpdated) {
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+
+ // Read in ldap.properties and substitute in the correct port
+ File f = new File(basedir + "/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties");
+
+ FileInputStream inputStream = new FileInputStream(f);
+ String content = IOUtils.toString(inputStream, "UTF-8");
+ inputStream.close();
+ content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+
+ File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap.properties");
+ FileOutputStream outputStream = new FileOutputStream(f2);
+ IOUtils.write(content, outputStream, "UTF-8");
+ outputStream.close();
+ portUpdated = true;
+ }
+ }
}
\ No newline at end of file
diff --git a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
index d286ea1..f02bc53 100644
--- a/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
+++ b/jaas/modules/src/test/java/org/apache/karaf/jaas/modules/ldap/LdapSpecialCharsInPasswordTest.java
@@ -16,7 +16,11 @@
package org.apache.karaf.jaas.modules.ldap;
import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
import java.io.IOException;
+
+import org.apache.commons.io.IOUtils;
import org.apache.directory.api.ldap.model.constants.SchemaConstants;
import org.apache.directory.api.ldap.model.message.ModifyRequest;
import org.apache.directory.api.ldap.model.message.ModifyRequestImpl;
@@ -35,7 +39,7 @@
import org.junit.runner.RunWith;
@RunWith ( FrameworkRunner.class )
-@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP", port=9999)})
+@CreateLdapServer(transports = {@CreateTransport(protocol = "LDAP")})
@CreateDS(name = "LdapSpecialCharsInPasswordTest-class",
partitions = { @CreatePartition(name = "example", suffix = "dc=example,dc=com") })
@ApplyLdifFiles(
@@ -43,15 +47,46 @@
)
public class LdapSpecialCharsInPasswordTest extends LdapLoginModuleTest {
+ private static boolean portUpdated;
private static final String NEW_CONNECTION_PASSWORD = "#a&b{>c=<12~d%";
+
+ @Before
+ @Override
+ public void updatePort() throws Exception {
+ if (!portUpdated) {
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+
+ // Read in ldap.properties and substitute in the correct port
+ File f = new File(basedir + "/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties");
+
+ FileInputStream inputStream = new FileInputStream(f);
+ String content = IOUtils.toString(inputStream, "UTF-8");
+ inputStream.close();
+ content = content.replaceAll("portno", "" + super.getLdapServer().getPort());
+
+ File f2 = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties");
+ FileOutputStream outputStream = new FileOutputStream(f2);
+ IOUtils.write(content, outputStream, "UTF-8");
+ outputStream.close();
+ portUpdated = true;
+ }
+ }
protected Properties ldapLoginModuleOptions() throws IOException {
- return new Properties(new File("src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties"));
+ String basedir = System.getProperty("basedir");
+ if (basedir == null) {
+ basedir = new File(".").getCanonicalPath();
+ }
+ File file = new File(basedir + "/target/test-classes/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties");
+ return new Properties(file);
}
@Before
public void changeAdminPassword() throws Exception {
- LdapConnection connection = new LdapNetworkConnection( "localhost", 9999 );
+ LdapConnection connection = new LdapNetworkConnection( "localhost", super.getLdapServer().getPort() );
connection.bind( "uid=admin,ou=system", "secret");
Dn adminDn = new Dn( "uid=admin,ou=system" );
ModifyRequest modReq = new ModifyRequestImpl();
@@ -61,7 +96,7 @@
connection.close();
// check that we actually changed the admin connection password
- connection = new LdapNetworkConnection( "localhost", 9999 );
+ connection = new LdapNetworkConnection( "localhost", super.getLdapServer().getPort() );
connection.bind( "uid=admin,ou=system", NEW_CONNECTION_PASSWORD);
connection.close();
}
diff --git a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties
index 5cb6848..7916b1e 100644
--- a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties
+++ b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap.properties
@@ -18,7 +18,7 @@
################################################################################
debug=true
-connection.url=ldap://127.0.0.1:9999
+connection.url=ldap://127.0.0.1:portno
connection.username=uid=admin,ou=system
connection.password=secret
connection.protocol=
diff --git a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties
index 931e7b6..fe5dde9 100644
--- a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties
+++ b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldapCaseInsensitiveDN.properties
@@ -18,7 +18,7 @@
################################################################################
debug=true
-connection.url=ldap://127.0.0.1:9999
+connection.url=ldap://127.0.0.1:portno
connection.username=uid=admin,ou=system
connection.password=secret
connection.protocol=
diff --git a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties
index 858bba0..5141515 100644
--- a/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties
+++ b/jaas/modules/src/test/resources/org/apache/karaf/jaas/modules/ldap/ldap_special_char_in_password.properties
@@ -18,7 +18,7 @@
################################################################################
debug=true
-connection.url=ldap://127.0.0.1:9999
+connection.url=ldap://127.0.0.1:portno
connection.username=uid=admin,ou=system
connection.password=#a&b{>c=<12~d%
connection.protocol=
diff --git a/pom.xml b/pom.xml
index 9ebb367..37b9e43 100644
--- a/pom.xml
+++ b/pom.xml
@@ -254,7 +254,7 @@
<sshd.version>0.14.0</sshd.version>
<derby-version>10.10.1.1</derby-version>
- <directory-version>2.0.0-M16</directory-version>
+ <directory-version>2.0.0-M20</directory-version>
<struts.bundle.version>1.3.10_1</struts.bundle.version>
<xbean.version>3.18</xbean.version>
<xerces.version>2.11.0</xerces.version>