5 releases
0.1.2 | Nov 10, 2024 |
---|---|
0.1.1 |
|
0.1.0 | Mar 13, 2024 |
0.0.3 | May 19, 2023 |
0.0.2 | Mar 30, 2023 |
#408 in Testing
73 downloads per month
Used in ldap-test-server-cli
29KB
507 lines
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:
- Apache License, Version 2.0 (LICENSE-APACHE), or
- MIT license (LICENSE-MIT)
Dependencies
~15–26MB
~494K SLoC