title: What is a good embeddable Java LDAP server?
body: <p>I'm working on a Java web application that integrates with a few other external applications that are deployed along with it. Authentication information must be synchronized across everything and the other applications want to authenticate against LDAP. The application will be deployed in environments where there will be no other LDAP server for everything to use; I have to provide it. My solution so far has been to use <a href="http://docs.safehaus.org/display/PENROSE/Home" rel="noreferrer">Penrose Server</a> as a standalone app, which I set up to examine tables in the main application's database and publish LDAP based on that. It works well, but it would be nice to have something that can be embedded into the main application itself to simplify deployment.</p>
  
  <p>It looks like Penrose can be embedded, but the documentation can be a bit spotty or out-of-date (though it seems to be actively developed). It could be an acceptable solution, but if there is another out there that is known to work well in an embedded configuration I might want to check it out.</p>
  
  <p>I'm also concerned about GPL issues with Penrose. I'm not at liberty to GPL the source code for the application. I don't believe it was an issue running it standalone, but embedding it may be no-no... anybody know for sure? A permissive license would be good in order to avoid these issues.</p>
  
  <p>Requirements:</p>
  
  <ol>
  <li>LDAP v3</li>
  <li>Must be able to be have the directory contents updated while running, either programmatically or by another means like syncing with the database as Penrose does</li>
  <li>Easy to configure (no additional configuration for the app at deployment time would be ideal)</li>
  </ol>
  
  <p>So far I've briefly looked at <a href="http://directory.apache.org/apacheds/1.5/" rel="noreferrer">ApacheDS</a> and <a href="https://opends.java.net/" rel="noreferrer">OpenDS</a> which seem to be embeddable.</p>
  
  <p>Does anyone have experience with this kind of thing?</p>