# Copyright (c) 2021-2024 Andrew Ruthven # Portions Copyright (c) Best Practical Solutions, LLC # , licensed under the GPL v2. # # Test with LDAP auth logging in as a user which is in neither the DB # or LDAP. BEGINPERL if ($debug) { $ENV{'LDAP_DEBUG'} = 1 }; use Net::LDAP::Server::Test; use Net::LDAP; use IO::Socket::INET; my $ldap_port = 21394; my $ldap_socket = IO::Socket::INET->new( Listen => 5, Proto => 'tcp', Reuse => 1, LocalPort => $ldap_port, ); # Keep it around after this block exits. $evaled{'ldap_server'} = Net::LDAP::Server::Test->new( $ldap_socket, auto_schema => 1 ); my $ldap = Net::LDAP->new("localhost:$ldap_port") || die "Failed to instantiate Net::LDAP: $!"; $ldap->bind(); my $username = "ldap1"; my $base = "dc=example,dc=com"; my $dn = "uid=$username,$base"; my $entry = { cn => $username, mail => "$username\@example.com", uid => $username, objectClass => 'User', userPassword => 'ldap1', }; $ldap->add( $base ); $ldap->add( $dn, attr => [%$entry] ); # We need to keep the client around, otherwise the test server will exit. $evaled{'ldap_client'} = $ldap; #sleep 100; ENDPERL TYPE=PROPFIND HEADER=Content-Type: text/xml HEADER=Depth: 1 AUTH=ldap2:ldap2 HEAD BEGINDATA ENDDATA URL=http://regression_ldap.host/caldav.php/ # Check that no usr record has been created. QUERY SELECT active, email, fullname, last_used, password, username, user_no FROM usr WHERE username = 'ldap2'; ENDQUERY