ldap-test-server

Crates.ioldap-test-server
lib.rsldap-test-server
version0.1.2
sourcesrc
created_at2023-03-26 20:29:07.173551
updated_at2024-11-10 20:28:30.639763
descriptionRunning isolated OpenLDAP servers in integration tests
homepage
repositoryhttps://gitlab.com/mateuszkj/ldap-test-server
max_upload_size
id821512
size45,478
(mateuszkj)

documentation

https://docs.rs/ldap-test-server

README

LDAP server for Rust integration testing

This crate allow starting isolated OpenLDAP (slapd) server in integration tests.

OpenLDAP server is created in temporary directory and uses random free port.

Example

use ldap_test_server::LdapServerBuilder;

#[tokio::main]
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;
}

Dependencies

This crate depends on system commands that has to be available from $PATH

  • slapdd
  • slapd
  • ldapadd
  • ldapmodiy
  • ldapdelete

How to install slpad and ldap-utils on Ubuntu

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

License

Licensed under either of:

Commit count: 28

cargo fmt