Improve Apache directory server
authorMathieu Baudier <mbaudier@argeo.org>
Mon, 23 Nov 2009 19:31:00 +0000 (19:31 +0000)
committerMathieu Baudier <mbaudier@argeo.org>
Mon, 23 Nov 2009 19:31:00 +0000 (19:31 +0000)
git-svn-id: https://svn.argeo.org/commons/trunk@3149 4cfe0d0a-d680-48aa-b62c-e0a02a3f76cc

security/demo/org.argeo.security.demo.ldap/META-INF/MANIFEST.MF [deleted file]
security/demo/org.argeo.security.demo.ldap/ldap.properties [deleted file]
security/modules/org.argeo.security.manager.ldap/ldap.properties [new file with mode: 0644]
server/modules/org.argeo.server.ads.server/META-INF/spring/ads.xml
server/modules/org.argeo.server.ads.server/ads.properties
server/runtime/org.argeo.server.ads/pom.xml
server/runtime/org.argeo.server.ads/src/main/java/org/argeo/server/ads/AdsContainer.java

diff --git a/security/demo/org.argeo.security.demo.ldap/META-INF/MANIFEST.MF b/security/demo/org.argeo.security.demo.ldap/META-INF/MANIFEST.MF
deleted file mode 100644 (file)
index 0088588..0000000
+++ /dev/null
@@ -1,3 +0,0 @@
-Bundle-SymbolicName: org.argeo.security.demo.ldap
-Bundle-Version: 0.1.2.SNAPSHOT
-Fragment-Host: org.argeo.security.manager.ldap
diff --git a/security/demo/org.argeo.security.demo.ldap/ldap.properties b/security/demo/org.argeo.security.demo.ldap/ldap.properties
deleted file mode 100644 (file)
index 970468a..0000000
+++ /dev/null
@@ -1,5 +0,0 @@
-argeo.ldap.rootdn=dc=demo,dc=argeo,dc=org
-argeo.ldap.host=localhost
-argeo.ldap.port=10389
-argeo.ldap.manager.userdn=uid=admin,ou=system
-argeo.ldap.manager.password=secret
diff --git a/security/modules/org.argeo.security.manager.ldap/ldap.properties b/security/modules/org.argeo.security.manager.ldap/ldap.properties
new file mode 100644 (file)
index 0000000..970468a
--- /dev/null
@@ -0,0 +1,5 @@
+argeo.ldap.rootdn=dc=demo,dc=argeo,dc=org
+argeo.ldap.host=localhost
+argeo.ldap.port=10389
+argeo.ldap.manager.userdn=uid=admin,ou=system
+argeo.ldap.manager.password=secret
index 6f7f6a6150cbfb04df7bb7ebf7192305b0939d84..b579ee5f87d5ca98be673dabe41781b4535b5645 100644 (file)
@@ -19,7 +19,7 @@
                <property name="environment" ref="environment" />
                <property name="ldifs">
                        <list>
-                               <value>osgibundle:init.ldif</value>
+                               <value>${argeo.ads.init.ldif}</value>
                        </list>
                </property>
        </bean>
index 2596f1a58dce14d6f5ebe93c15c6482d5b3722b6..ea544d5866db0d14139d2b65888fd264ef9e562f 100644 (file)
@@ -2,3 +2,4 @@ argeo.ldap.rootdn=dc=demo,dc=argeo,dc=org
 argeo.ldap.port=10389
 argeo.ldap.manager.userdn=uid=admin,ou=system
 argeo.ldap.manager.password=secret
+argeo.ads.init.ldif=osgibundle:init.ldif
\ No newline at end of file
index f5894520c7b54fff3add873253e5f874bb0421e4..bdb675889c37bb0b5833ea1c41c37ad1359b59b0 100644 (file)
                <dependency>
                        <groupId>org.apache.directory</groupId>
                        <artifactId>com.springsource.org.apache.directory.server.jndi</artifactId>
+                       <exclusions>
+                               <!--
+                                       Workaround for a weird issue where the underlying version from
+                                       slf4j get taken instead of the one we want
+                               -->
+                               <exclusion>
+                                       <groupId>org.slf4j</groupId>
+                                       <artifactId>com.springsource.slf4j.api</artifactId>
+                               </exclusion>
+                       </exclusions>
                </dependency>
 
                <!-- Apache Commons -->
@@ -61,5 +71,9 @@
                        <groupId>org.slf4j</groupId>
                        <artifactId>com.springsource.slf4j.org.apache.commons.logging</artifactId>
                </dependency>
+               <dependency>
+                       <groupId>org.slf4j</groupId>
+                       <artifactId>com.springsource.slf4j.api</artifactId>
+               </dependency>
        </dependencies>
 </project>
index 4a36f721db3c749c133fede75eb40e5c5dafac5d..febc3630318bcb9b40500a71fd16153138afecf5 100644 (file)
@@ -1,6 +1,8 @@
 package org.argeo.server.ads;
 
 import java.io.File;
+import java.io.FileOutputStream;
+import java.io.OutputStream;
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Properties;
@@ -11,6 +13,7 @@ import javax.naming.NamingException;
 import javax.naming.directory.InitialDirContext;
 
 import org.apache.commons.io.FileUtils;
+import org.apache.commons.io.IOUtils;
 import org.apache.commons.logging.Log;
 import org.apache.commons.logging.LogFactory;
 import org.apache.directory.server.configuration.MutableServerStartupConfiguration;
@@ -55,15 +58,23 @@ public class AdsContainer implements InitializingBean, DisposableBean {
                                        .getAbsolutePath()
                                        + File.separator + "ldif"));
 
+               // Deals with provided LDIF files
                if (ldifs.size() > 0)
                        configuration.getLdifDirectory().mkdirs();
                for (Resource ldif : ldifs) {
-                       FileUtils.copyURLToFile(ldif.getURL(), new File(configuration
-                                       .getLdifDirectory().getAbsolutePath()
-                                       + File.separator + ldif.getFilename().replace(':', '_')));
-                       if (log.isDebugEnabled())
-                               log.debug("Copied " + ldif + " to LDIF directory "
-                                               + configuration.getLdifDirectory());
+                       File targetFile = new File(configuration.getLdifDirectory()
+                                       .getAbsolutePath()
+                                       + File.separator + ldif.getFilename().replace(':', '_'));
+                       OutputStream output = null;
+                       try {
+                               output = new FileOutputStream(targetFile);
+                               IOUtils.copy(ldif.getInputStream(), output);
+                               if (log.isDebugEnabled())
+                                       log.debug("Copied " + ldif + " to LDIF directory "
+                                                       + configuration.getLdifDirectory());
+                       } finally {
+                               IOUtils.closeQuietly(output);
+                       }
                }
 
                Properties env = new Properties();