#! /bin/sh # $OpenLDAP$ ## This work is part of OpenLDAP Software . ## ## Copyright 1998-2004 The OpenLDAP Foundation. ## All rights reserved. ## ## Redistribution and use in source and binary forms, with or without ## modification, are permitted only as authorized by the OpenLDAP ## Public License. ## ## A copy of this license is available in the file LICENSE in the ## top-level directory of the distribution or, alternatively, at ## . echo "running defines.sh" . $SRCDIR/scripts/defines.sh if test $BACKLDAP = "ldapno" ; then echo "LDAP backend not available, test skipped" exit 0 fi if test $WITH_SASL = "yes" ; then if test $USE_SASL = "yes" ; then echo "Using SASL authc/authz..." else echo "Using proxyAuthz with simple authc" echo "set SLAPD_USE_SASL=yes to enable SASL authc/authz..." fi else echo "SASL not available; using proxyAuthz with simple authc..." fi mkdir -p $TESTDIR $DBDIR1 $DBDIR2 echo "Running slapadd to build slapd database..." . $CONFFILTER $BACKEND $MONITORDB < $IDASSERTCONF > $ADDCONF $SLAPADD -f $ADDCONF -l $LDIFIDASSERT1 -n 1 RC=$? if test $RC != 0 ; then echo "slapadd -n 1 failed ($RC)!" exit $RC fi $SLAPADD -f $ADDCONF -l $LDIFIDASSERT2 -n 2 RC=$? if test $RC != 0 ; then echo "slapadd -n 2 failed ($RC)!" exit $RC fi echo "Starting slapd on TCP/IP port $PORT..." . $CONFFILTER $BACKEND $MONITORDB < $IDASSERTCONF > $CONF1 $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 & PID=$! if test $WAIT != 0 ; then echo PID $PID read foo fi KILLPIDS="$PID" echo "Using ldapsearch to check that slapd is running..." for i in 0 1 2 3 4 5; do $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \ 'objectclass=*' > /dev/null 2>&1 RC=$? if test $RC = 0 ; then break fi echo "Waiting 5 seconds for slapd to start..." sleep 5 done echo "Testing ldapwhoami as proxy US..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy US,ou=Admin,dc=example,dc=com" -w proxy RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="u:it/jaj" echo "Testing ldapwhoami as proxy US, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy US,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="u:bjorn" echo "Testing ldapwhoami as proxy US, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy US,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 1 ; then echo "ldapwhoami should have failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="u:bjensen" echo "Testing ldapwhoami as proxy US, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy US,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 1 ; then echo "ldapwhoami should have failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi echo "Testing ldapwhoami as proxy IT..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy IT,ou=Admin,dc=example,dc=com" -w proxy RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="u:it/jaj" echo "Testing ldapwhoami as proxy IT, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy IT,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 1 ; then echo "ldapwhoami should have failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="u:bjorn" echo "Testing ldapwhoami as proxy IT, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy IT,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 1 ; then echo "ldapwhoami should have failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="dn:cn=Sandbox,ou=Admin,dc=example,dc=com" echo "Testing ldapwhoami as proxy IT, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "cn=proxy IT,ou=Admin,dc=example,dc=com" -w proxy -e\!"authzid=$AUTHZID" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="dn:uid=bjorn,ou=People,o=Example,c=US" echo "Testing ldapwhoami as bjorn, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "uid=bjorn,ou=people,dc=example,dc=com" -w bjorn -e\!"authzid=$AUTHZID" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi AUTHZID="dn:uid=bjorn,ou=People,o=Esempio,c=IT" echo "Testing ldapwhoami as bjorn, $AUTHZID..." $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "uid=bjorn,ou=people,dc=example,dc=com" -w bjorn -e\!"authzid=$AUTHZID" RC=$? if test $RC != 0 ; then echo "ldapwhoami failed ($RC)!" test $KILLSERVERS != no && kill -HUP $KILLPIDS exit $RC fi test $KILLSERVERS != no && kill -HUP $KILLPIDS echo ">>>>> Test succeeded" exit 0