- Introduction
- Installation
- Quick Start
- Release Notes
- Planned Features
- Limitations
- License
- Feedback
- Download Page
The motivation for creating this in Java implemented LDAP server was
- to have a very lightweight LDAP Server that needs no cumbersome installation
- to have a cost-free LDAP Server for development and testing
- to have the capability to do tracing of LDAP requests and responses
- to have an LDAP server that can be imbedded in a Java application
Generally this project was also inspired by the
HQSLDB
which is a very nice, easy-to-use SQL database.
The basic concept behind
Beluga is that it is fully based on
LDIF files. It is not using a database for its data.
Beluga is also completely unaware of directory schema. It just reads in the defined LDIF
files. That's the directory content, whatever the objectclasses and attributes are.
It was also clear from the very beginning that
Beluga will never
support all LDAP features as specified in
RFC-2251.
However, the basic functionality, which probably covers over 90% of real life
usage scenarios, is fully implemented. That is:
- Bind with user id and password
- Unbind
- Search with queries compliant to
RFC-2254
(with some minor exceptions)
- Add objects
- Replace objects
- Modify objects
- Delete objects
However, all changes to the data will be lost after the server has been stopped.
Currently changes are not persisted!
- Unzip the archive pf-beluga-x.x.zip to any directory you want.
- Then ensure that environment variable JAVA_HOME is set to a JRE or JDK
1.4.2 or higher.
- Open a command shell in the directory to which you unzipped the archive.
- Run the script sssgen.bat or sssgen.sh to generate a start shell script
that invokes the tool with absolute classpath entries in order to allow to
start it from anywhere in the file system.
- After that two scrpts must have been created: admin.bat (admin.sh) and startserver.bat (startserver.sh)
To start the LDAP server use the generated script
startserver.bat/startserver.sh.
To stop the LDAP server use the script
shutdown.bat/shutdown.sh.
After starting the LDAP server open an LDAP browser like
LDAP Browser/Editor by Jarek Gawor
or
JXplorer.
Specify
dc=beluga as Base DN and do an anonymous connect to the server on localhost:389.
Alternatively you can use
uid=admin,ou=people,dc=beluga with password
admin
as bind user.
Now you should be able to browse the sample data.
To change the port (default is 389) of the LDAP server use start parameter
-p.
Example: startserver -p 9301
To run the server on a different set of LDIF files you must create a
directory.xml file
for example in a sub-folder
mydata. Put the LDIF files with the data whereever you want.
Just refer to them correctly from within the
directory.xml file.
See the sample
directory.xml below. It can be used as template. Just modify the
suffix entry and the
data-source URLs.
Then start the server with:
startserver -d mydata/directory.xml
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE directory SYSTEM "directory.dtd">
<directory>
<configuration>
<container-rule>objectclass{organization,organizationalUnit,dcObject,domain}</container-rule>
</configuration>
<meta-data>
<suffix>dc=beluga</suffix>
</meta-data>
<data>
<data-source url="sample/sample_dit.ldif" type="LDIF" />
<data-source url="sample/sample_data.ldif" type="LDIF" />
</data>
</directory>
|
Current version of
Beluga is
0.8
For details about supported features and bugfixes see
release-notes.txt.
The following list presents some of the features that are planned for future versions.
- Trace handler that log all incoming requests and outgoing responses
- Proxy mode. That is, all requests are forwarded to another LDAP server and
its responses are routed back to the client (makes sense with traceing capability)
- Other files as data source (e.g. DSML)
- Persisting changes
- Administration via JMX
- Bind with X.509 certificate
- SHA-1 and MD5 as password hashing algorithm
For a clear understanding and to avoid wrong expectations here is a brief
list of features
Beluga is currently
not supporting.
Furthermore there is no intention to support them in future either.
- LDAP v2
- Modify DN operation
- Compare Operation
- Extended Operations
- Abandon Operation
- Alias
- Referals
- approximate matching (~=) in search queries
- High performance (e.g. indexing or using database)
- LDAPS
- Metadata
This tool is currently available under the terms of the
Common Public License 1.0. It grants the right to freely use and
share this tool.
Please send all bug reports, comments and suggestions to
feedback@programmers-friend.org.