test014-whoami revision 1.1 1 1.1 lukem #! /bin/sh
2 1.1 lukem # $OpenLDAP: pkg/ldap/tests/scripts/test014-whoami,v 1.23.2.4 2008/02/11 23:44:27 quanah Exp $
3 1.1 lukem ## This work is part of OpenLDAP Software <http://www.openldap.org/>.
4 1.1 lukem ##
5 1.1 lukem ## Copyright 1998-2008 The OpenLDAP Foundation.
6 1.1 lukem ## All rights reserved.
7 1.1 lukem ##
8 1.1 lukem ## Redistribution and use in source and binary forms, with or without
9 1.1 lukem ## modification, are permitted only as authorized by the OpenLDAP
10 1.1 lukem ## Public License.
11 1.1 lukem ##
12 1.1 lukem ## A copy of this license is available in the file LICENSE in the
13 1.1 lukem ## top-level directory of the distribution or, alternatively, at
14 1.1 lukem ## <http://www.OpenLDAP.org/license.html>.
15 1.1 lukem
16 1.1 lukem echo "running defines.sh"
17 1.1 lukem . $SRCDIR/scripts/defines.sh
18 1.1 lukem
19 1.1 lukem mkdir -p $TESTDIR $DBDIR1
20 1.1 lukem
21 1.1 lukem echo "Running slapadd to build slapd database..."
22 1.1 lukem . $CONFFILTER $BACKEND $MONITORDB < $WHOAMICONF > $ADDCONF
23 1.1 lukem $SLAPADD -f $ADDCONF -l $LDIFWHOAMI
24 1.1 lukem RC=$?
25 1.1 lukem if test $RC != 0 ; then
26 1.1 lukem echo "slapadd failed ($RC)!"
27 1.1 lukem exit $RC
28 1.1 lukem fi
29 1.1 lukem
30 1.1 lukem echo "Starting slapd on TCP/IP port $PORT..."
31 1.1 lukem . $CONFFILTER $BACKEND $MONITORDB < $WHOAMICONF > $CONF1
32 1.1 lukem $SLAPD -f $CONF1 -h $URI1 -d $LVL $TIMING > $LOG1 2>&1 &
33 1.1 lukem PID=$!
34 1.1 lukem if test $WAIT != 0 ; then
35 1.1 lukem echo PID $PID
36 1.1 lukem read foo
37 1.1 lukem fi
38 1.1 lukem KILLPIDS="$PID"
39 1.1 lukem
40 1.1 lukem sleep 1
41 1.1 lukem
42 1.1 lukem echo "Using ldapsearch to check that slapd is running..."
43 1.1 lukem for i in 0 1 2 3 4 5; do
44 1.1 lukem $LDAPSEARCH -s base -b "$MONITOR" -h $LOCALHOST -p $PORT1 \
45 1.1 lukem 'objectclass=*' > /dev/null 2>&1
46 1.1 lukem RC=$?
47 1.1 lukem if test $RC = 0 ; then
48 1.1 lukem break
49 1.1 lukem fi
50 1.1 lukem echo "Waiting 5 seconds for slapd to start..."
51 1.1 lukem sleep 5
52 1.1 lukem done
53 1.1 lukem
54 1.1 lukem echo "Testing ldapwhoami as anonymous..."
55 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1
56 1.1 lukem
57 1.1 lukem RC=$?
58 1.1 lukem if test $RC != 0 ; then
59 1.1 lukem echo "ldapwhoami failed ($RC)!"
60 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
61 1.1 lukem exit $RC
62 1.1 lukem fi
63 1.1 lukem
64 1.1 lukem echo "Testing ldapwhoami as ${MANAGERDN}..."
65 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD
66 1.1 lukem
67 1.1 lukem RC=$?
68 1.1 lukem if test $RC != 0 ; then
69 1.1 lukem echo "ldapwhoami failed ($RC)!"
70 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
71 1.1 lukem exit $RC
72 1.1 lukem fi
73 1.1 lukem
74 1.1 lukem echo "Testing ldapwhoami as ${MANAGERDN} for anonymous..."
75 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD \
76 1.1 lukem -e \!authzid=""
77 1.1 lukem
78 1.1 lukem RC=$?
79 1.1 lukem if test $RC != 0 ; then
80 1.1 lukem echo "ldapwhoami failed ($RC)!"
81 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
82 1.1 lukem exit $RC
83 1.1 lukem fi
84 1.1 lukem
85 1.1 lukem echo "Testing ldapwhoami as ${MANAGERDN} for dn:$BABSDN..."
86 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD \
87 1.1 lukem -e \!authzid="dn:$BABSDN"
88 1.1 lukem
89 1.1 lukem RC=$?
90 1.1 lukem if test $RC != 0 ; then
91 1.1 lukem echo "ldapwhoami failed ($RC)!"
92 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
93 1.1 lukem exit $RC
94 1.1 lukem fi
95 1.1 lukem
96 1.1 lukem echo "Testing ldapwhoami as ${MANAGERDN} for u:uham..."
97 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$MANAGERDN" -w $PASSWD \
98 1.1 lukem -e \!authzid="u:uham"
99 1.1 lukem
100 1.1 lukem RC=$?
101 1.1 lukem if test $RC != 0 ; then
102 1.1 lukem echo "ldapwhoami failed ($RC)!"
103 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
104 1.1 lukem exit $RC
105 1.1 lukem fi
106 1.1 lukem
107 1.1 lukem # authzFrom: someone else => bjorn
108 1.1 lukem echo "Testing authzFrom..."
109 1.1 lukem
110 1.1 lukem BINDDN="cn=Barbara Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
111 1.1 lukem BINDPW=bjensen
112 1.1 lukem AUTHZID="u:bjorn"
113 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.exact)..."
114 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
115 1.1 lukem -e \!authzid="$AUTHZID"
116 1.1 lukem
117 1.1 lukem RC=$?
118 1.1 lukem if test $RC != 0 ; then
119 1.1 lukem echo "ldapwhoami failed ($RC)!"
120 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
121 1.1 lukem exit $RC
122 1.1 lukem fi
123 1.1 lukem
124 1.1 lukem BINDDN="cn=Mark Elliot,ou=Alumni Association,ou=People,dc=example,dc=com"
125 1.1 lukem BINDPW=melliot
126 1.1 lukem AUTHZID="u:bjorn"
127 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (u)..."
128 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
129 1.1 lukem -e \!authzid="$AUTHZID"
130 1.1 lukem
131 1.1 lukem RC=$?
132 1.1 lukem if test $RC != 0 ; then
133 1.1 lukem echo "ldapwhoami failed ($RC)!"
134 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
135 1.1 lukem exit $RC
136 1.1 lukem fi
137 1.1 lukem
138 1.1 lukem BINDDN="cn=Jennifer Smith,ou=Alumni Association,ou=People,dc=example,dc=com"
139 1.1 lukem BINDPW=jen
140 1.1 lukem AUTHZID="u:bjorn"
141 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI)..."
142 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
143 1.1 lukem -e \!authzid="$AUTHZID"
144 1.1 lukem
145 1.1 lukem RC=$?
146 1.1 lukem if test $RC != 0 ; then
147 1.1 lukem echo "ldapwhoami failed ($RC)!"
148 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
149 1.1 lukem exit $RC
150 1.1 lukem fi
151 1.1 lukem
152 1.1 lukem BINDDN="cn=James A Jones 2,ou=Information Technology Division,ou=People,dc=example,dc=com"
153 1.1 lukem BINDPW=jjones
154 1.1 lukem AUTHZID="u:bjorn"
155 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (group)..."
156 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
157 1.1 lukem -e \!authzid="$AUTHZID"
158 1.1 lukem
159 1.1 lukem RC=$?
160 1.1 lukem if test $RC != 0 ; then
161 1.1 lukem echo "ldapwhoami failed ($RC)!"
162 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
163 1.1 lukem exit $RC
164 1.1 lukem fi
165 1.1 lukem
166 1.1 lukem BINDDN="cn=No One,ou=Information Technology Division,ou=People,dc=example,dc=com"
167 1.1 lukem BINDPW=noone
168 1.1 lukem AUTHZID="u:bjorn"
169 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.onelevel)..."
170 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
171 1.1 lukem -e \!authzid="$AUTHZID"
172 1.1 lukem
173 1.1 lukem RC=$?
174 1.1 lukem if test $RC != 0 ; then
175 1.1 lukem echo "ldapwhoami failed ($RC)!"
176 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
177 1.1 lukem exit $RC
178 1.1 lukem fi
179 1.1 lukem
180 1.1 lukem BINDDN="cn=Dorothy Stevens,ou=Alumni Association,ou=People,dc=example,dc=com"
181 1.1 lukem BINDPW=dots
182 1.1 lukem AUTHZID="u:bjorn"
183 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.regex)..."
184 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
185 1.1 lukem -e \!authzid="$AUTHZID"
186 1.1 lukem
187 1.1 lukem RC=$?
188 1.1 lukem if test $RC != 0 ; then
189 1.1 lukem echo "ldapwhoami failed ($RC)!"
190 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
191 1.1 lukem exit $RC
192 1.1 lukem fi
193 1.1 lukem
194 1.1 lukem BINDDN="cn=James A Jones 1,ou=Alumni Association,ou=People,dc=example,dc=com"
195 1.1 lukem BINDPW=jaj
196 1.1 lukem AUTHZID="u:bjorn"
197 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.children)..."
198 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
199 1.1 lukem -e \!authzid="$AUTHZID"
200 1.1 lukem
201 1.1 lukem RC=$?
202 1.1 lukem if test $RC != 0 ; then
203 1.1 lukem echo "ldapwhoami failed ($RC)!"
204 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
205 1.1 lukem exit $RC
206 1.1 lukem fi
207 1.1 lukem
208 1.1 lukem BINDDN="cn=ITD Staff,ou=Groups,dc=example,dc=com"
209 1.1 lukem BINDPW=ITD
210 1.1 lukem AUTHZID="u:bjorn"
211 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.subtree)..."
212 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
213 1.1 lukem -e \!authzid="$AUTHZID"
214 1.1 lukem
215 1.1 lukem RC=$?
216 1.1 lukem if test $RC != 0 ; then
217 1.1 lukem echo "ldapwhoami failed ($RC)!"
218 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
219 1.1 lukem exit $RC
220 1.1 lukem fi
221 1.1 lukem
222 1.1 lukem BINDDN="cn=Should Fail,dc=example,dc=com"
223 1.1 lukem BINDPW=fail
224 1.1 lukem AUTHZID="u:bjorn"
225 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI; should fail)..."
226 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
227 1.1 lukem -e \!authzid="$AUTHZID"
228 1.1 lukem
229 1.1 lukem RC=$?
230 1.1 lukem case $RC in
231 1.1 lukem 1)
232 1.1 lukem ;;
233 1.1 lukem 0)
234 1.1 lukem echo "ldapwhoami should have failed ($RC)!"
235 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
236 1.1 lukem exit -1
237 1.1 lukem ;;
238 1.1 lukem *)
239 1.1 lukem echo "ldapwhoami failed ($RC)!"
240 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
241 1.1 lukem exit $RC
242 1.1 lukem ;;
243 1.1 lukem esac
244 1.1 lukem
245 1.1 lukem BINDDN="cn=Must Fail,dc=example,dc=com"
246 1.1 lukem BINDPW=fail
247 1.1 lukem AUTHZID="u:bjorn"
248 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI; should fail)..."
249 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
250 1.1 lukem -e \!authzid="$AUTHZID"
251 1.1 lukem
252 1.1 lukem RC=$?
253 1.1 lukem case $RC in
254 1.1 lukem 1)
255 1.1 lukem ;;
256 1.1 lukem 0)
257 1.1 lukem echo "ldapwhoami should have failed ($RC)!"
258 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
259 1.1 lukem exit -1
260 1.1 lukem ;;
261 1.1 lukem *)
262 1.1 lukem echo "ldapwhoami failed ($RC)!"
263 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
264 1.1 lukem exit $RC
265 1.1 lukem ;;
266 1.1 lukem esac
267 1.1 lukem
268 1.1 lukem # authzTo: bjorn => someone else
269 1.1 lukem echo "Testing authzTo..."
270 1.1 lukem
271 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
272 1.1 lukem BINDPW=bjorn
273 1.1 lukem AUTHZID="u:bjensen"
274 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.exact)..."
275 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
276 1.1 lukem -e \!authzid="$AUTHZID"
277 1.1 lukem
278 1.1 lukem RC=$?
279 1.1 lukem if test $RC != 0 ; then
280 1.1 lukem echo "ldapwhoami failed ($RC)!"
281 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
282 1.1 lukem exit $RC
283 1.1 lukem fi
284 1.1 lukem
285 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
286 1.1 lukem BINDPW=bjorn
287 1.1 lukem AUTHZID="u:melliot"
288 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (u)..."
289 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
290 1.1 lukem -e \!authzid="$AUTHZID"
291 1.1 lukem
292 1.1 lukem RC=$?
293 1.1 lukem if test $RC != 0 ; then
294 1.1 lukem echo "ldapwhoami failed ($RC)!"
295 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
296 1.1 lukem exit $RC
297 1.1 lukem fi
298 1.1 lukem
299 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
300 1.1 lukem BINDPW=bjorn
301 1.1 lukem AUTHZID="u:jdoe"
302 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI)..."
303 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
304 1.1 lukem -e \!authzid="$AUTHZID"
305 1.1 lukem
306 1.1 lukem RC=$?
307 1.1 lukem if test $RC != 0 ; then
308 1.1 lukem echo "ldapwhoami failed ($RC)!"
309 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
310 1.1 lukem exit $RC
311 1.1 lukem fi
312 1.1 lukem
313 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
314 1.1 lukem BINDPW=bjorn
315 1.1 lukem AUTHZID="u:jjones"
316 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (group)..."
317 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
318 1.1 lukem -e \!authzid="$AUTHZID"
319 1.1 lukem
320 1.1 lukem RC=$?
321 1.1 lukem if test $RC != 0 ; then
322 1.1 lukem echo "ldapwhoami failed ($RC)!"
323 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
324 1.1 lukem exit $RC
325 1.1 lukem fi
326 1.1 lukem
327 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
328 1.1 lukem BINDPW=bjorn
329 1.1 lukem AUTHZID="u:noone"
330 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.onelevel)..."
331 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
332 1.1 lukem -e \!authzid="$AUTHZID"
333 1.1 lukem
334 1.1 lukem RC=$?
335 1.1 lukem if test $RC != 0 ; then
336 1.1 lukem echo "ldapwhoami failed ($RC)!"
337 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
338 1.1 lukem exit $RC
339 1.1 lukem fi
340 1.1 lukem
341 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
342 1.1 lukem BINDPW=bjorn
343 1.1 lukem AUTHZID="u:dots"
344 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.regex)..."
345 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
346 1.1 lukem -e \!authzid="$AUTHZID"
347 1.1 lukem
348 1.1 lukem RC=$?
349 1.1 lukem if test $RC != 0 ; then
350 1.1 lukem echo "ldapwhoami failed ($RC)!"
351 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
352 1.1 lukem exit $RC
353 1.1 lukem fi
354 1.1 lukem
355 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
356 1.1 lukem BINDPW=bjorn
357 1.1 lukem AUTHZID="u:jaj"
358 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.children)..."
359 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
360 1.1 lukem -e \!authzid="$AUTHZID"
361 1.1 lukem
362 1.1 lukem RC=$?
363 1.1 lukem if test $RC != 0 ; then
364 1.1 lukem echo "ldapwhoami failed ($RC)!"
365 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
366 1.1 lukem exit $RC
367 1.1 lukem fi
368 1.1 lukem
369 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
370 1.1 lukem BINDPW=bjorn
371 1.1 lukem AUTHZID="u:group/itd staff"
372 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (dn.subtree)..."
373 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
374 1.1 lukem -e \!authzid="$AUTHZID"
375 1.1 lukem
376 1.1 lukem RC=$?
377 1.1 lukem if test $RC != 0 ; then
378 1.1 lukem echo "ldapwhoami failed ($RC)!"
379 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
380 1.1 lukem exit $RC
381 1.1 lukem fi
382 1.1 lukem
383 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
384 1.1 lukem BINDPW=bjorn
385 1.1 lukem AUTHZID="u:fail"
386 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI; should fail)..."
387 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
388 1.1 lukem -e \!authzid="$AUTHZID"
389 1.1 lukem
390 1.1 lukem RC=$?
391 1.1 lukem case $RC in
392 1.1 lukem 1)
393 1.1 lukem ;;
394 1.1 lukem 0)
395 1.1 lukem echo "ldapwhoami should have failed ($RC)!"
396 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
397 1.1 lukem exit -1
398 1.1 lukem ;;
399 1.1 lukem *)
400 1.1 lukem echo "ldapwhoami failed ($RC)!"
401 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
402 1.1 lukem exit $RC
403 1.1 lukem ;;
404 1.1 lukem esac
405 1.1 lukem
406 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
407 1.1 lukem BINDPW=bjorn
408 1.1 lukem AUTHZID="dn:cn=Should Fail,dc=example,dc=com"
409 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (URI; should fail)..."
410 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
411 1.1 lukem -e \!authzid="$AUTHZID"
412 1.1 lukem
413 1.1 lukem RC=$?
414 1.1 lukem case $RC in
415 1.1 lukem 1)
416 1.1 lukem ;;
417 1.1 lukem 0)
418 1.1 lukem echo "ldapwhoami should have failed ($RC)!"
419 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
420 1.1 lukem exit -1
421 1.1 lukem ;;
422 1.1 lukem *)
423 1.1 lukem echo "ldapwhoami failed ($RC)!"
424 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
425 1.1 lukem exit $RC
426 1.1 lukem ;;
427 1.1 lukem esac
428 1.1 lukem
429 1.1 lukem BINDDN="cn=Bjorn Jensen,ou=Information Technology Division,ou=People,dc=example,dc=com"
430 1.1 lukem BINDPW=bjorn
431 1.1 lukem AUTHZID="dn:cn=don't!"
432 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID} (no authzTo; should fail)..."
433 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
434 1.1 lukem -e \!authzid="$AUTHZID"
435 1.1 lukem
436 1.1 lukem RC=$?
437 1.1 lukem if test $RC != 1 ; then
438 1.1 lukem echo "ldapwhoami failed ($RC)!"
439 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
440 1.1 lukem exit $RC
441 1.1 lukem fi
442 1.1 lukem
443 1.1 lukem BINDDN="dc=example,dc=com"
444 1.1 lukem BINDPW=example
445 1.1 lukem AUTHZID="dn:"
446 1.1 lukem echo "Testing ldapwhoami as ${BINDDN} for ${AUTHZID}\"\" (dn.exact; should succeed)..."
447 1.1 lukem $LDAPWHOAMI -h $LOCALHOST -p $PORT1 -D "$BINDDN" -w $BINDPW \
448 1.1 lukem -e \!authzid="$AUTHZID"
449 1.1 lukem
450 1.1 lukem RC=$?
451 1.1 lukem if test $RC != 0 ; then
452 1.1 lukem echo "ldapwhoami failed ($RC)!"
453 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
454 1.1 lukem exit $RC
455 1.1 lukem fi
456 1.1 lukem
457 1.1 lukem test $KILLSERVERS != no && kill -HUP $KILLPIDS
458 1.1 lukem
459 1.1 lukem echo ">>>>> Test succeeded"
460 1.1 lukem
461 1.1 lukem test $KILLSERVERS != no && wait
462 1.1 lukem
463 1.1 lukem exit 0
464 1.1 lukem
465 1.1 lukem ## Note to developers: when SLAPD_DEBUG=-1 the command
466 1.1 lukem ## awk '/^do_extended$/ {if (c) {print c} c=0} /<===slap_sasl_match:/ {c++} END {print c}' $TESTDIR/slapd.1.log
467 1.1 lukem ## must return the sequence 1 2 3 4 5 6 7 8 8 8 1 2 3 4 5 6 7 8 8 8 8 1
468 1.1 lukem ## to indicate that the authzFrom and authzTo rules applied in the right order.
469