SYNOPSIS use Net::LDAP::SimpleServer; # Or, specifying a Net::Server personality use Net::LDAP::SimpleServer 'PreFork'; # using default configuration file my $server = Net::LDAP::SimpleServer->new(); # passing a specific configuration file my $server = Net::LDAP::SimpleServer->new({ conf_file => '/etc/ldapconfig.conf' }); # passing configurations in a hash my $server = Net::LDAP::SimpleServer->new({ port => 5000, data_file => '/path/to/data.ldif', }); # make it spin $server->run(); # make it spin with options $server->run({ allow_anon => 0 }); DESCRIPTION As the name suggests, this module aims to implement a simple LDAP server, using many components already available in CPAN. It can be used for prototyping and/or development purposes. This is NOT intended to be a production-grade server, although some brave souls in small offices might use it as such. The server will load a LDIF file and serve its contents through the LDAP protocol. Many operations are NOT available yet, some will never be. The constructors will follow the rules defined by Net::Server, but the most useful are the two forms described below. Net::LDAP::SimpleServer will use the directory ${HOME}/.ldapsimple as a BASEDIR for server files. If there exists a file: BASEDIR/server.conf it will be used as the default configuration file. Similarly, if there exists a file: BASEDIR/server.ldif it will be used as the default data file for this server. Instantiates a server object. If the default configuration file is available, the options in it will be used. Instantiates a server object using the options specified in a hash reference. As specified in Net::Server, this method creates new options for the server. Hence, in addition to Net::Server options, this module also allows setting the following parameters: As specified in Net::Server, this method provides default values for a number of options. Notice that we do set a default password for the cn=root DN. This allows for out-of-the-box testing, but make sure you change the password when putting this to use. Method specified by Net::Server to validate the parameters used in the server instance. Method specified by Net::Server to actually handle one connection. In this module it basically delegates the processing to Net::LDAP::SimpleServer::ProtocolHandler. CONFIGURATION AND ENVIRONMENT Net::LDAP::SimpleServer may use a configuration file to specify the server settings. If no file is specified and options are not passed in a hash, this module will look for a default configuration file named BASEDIR/server.conf. data_file /path/to/a/ldif/file.ldif #port 389 #root_dn cn=root #root_pw somepassword TODO We plan to implement more options in Net::LDAP::SimpleServer. Some ideas are: #objectclass_req (true|false) #user_tree dc=some,dc=subtree,dc=com Keeping in mind we do NOT want to implement a full blown LDAP server. Contributors in CPAN RT POD ERRORS Hey! The above document had some coding errors, which are explained below: Around line 54: Unknown directive: =method Around line 59: Unknown directive: =method Around line 64: Unknown directive: =method Around line 70: Unknown directive: =method Around line 79: Unknown directive: =method Around line 84: Unknown directive: =method