This crate allow starting isolated OpenLDAP (slapd) server in integration tests.
OpenLDAP server is created in temporary directory and uses random free port.
```rust use ldaptestserver::LdapServerBuilder;
async fn main() { let server = LdapServerBuilder::new("dc=planetexpress,dc=com") // add LDIF to database before LDAP server is started .add(1, "dn: dc=planetexpress,dc=com objectclass: dcObject objectclass: organization o: Planet Express dc: planetexpress
dn: ou=people,dc=planetexpress,dc=com objectClass: top objectClass: organizationalUnit description: Planet Express crew ou: people") // init databases and started LDAP server .run() .await;
// Add entity to running LDAP server
server.add(r##"dn: cn=Turanga Leela,ou=people,dc=planetexpress,dc=com
objectClass: inetOrgPerson objectClass: organizationalPerson objectClass: person objectClass: top cn: Turanga Leela sn: Turanga givenName: Leela"##).await; } ```
This crate depends on system commands that has to be available from $PATH - slapdd - slapd - ldapadd - ldapmodiy - ldapdelete
sh
DEBIAN_FRONTEND=noninteractive sudo apt-get install -y slapd ldap-utils openssl
sudo systemctl stop slapd
sudo systemctl disable slapd
sudo ln -s /etc/apparmor.d/usr.sbin.slapd /etc/apparmor.d/disable/
sudo apparmor_parser -R /etc/apparmor.d/usr.sbin.slapd
Licensed under either of: