diff options
author | Russ Allbery <rra@stanford.edu> | 2010-02-21 17:45:56 -0800 |
---|---|---|
committer | Russ Allbery <rra@stanford.edu> | 2010-02-21 17:45:56 -0800 |
commit | ae14bea1375dd5923d4a73e167b27bee13feb7b7 (patch) | |
tree | c1222395732cf8ce2cca32f013f080d19736f474 /tests/tap/kerberos.sh | |
parent | 57aba51dc26ebf0bdd034f6cb418a9ea5f1fc0be (diff) | |
parent | 60210334fa3dbd5dd168199063c6ee850d750d0c (diff) |
Merge commit 'upstream/0.10' into debian
Diffstat (limited to 'tests/tap/kerberos.sh')
-rw-r--r-- | tests/tap/kerberos.sh | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/tests/tap/kerberos.sh b/tests/tap/kerberos.sh new file mode 100644 index 0000000..da07e66 --- /dev/null +++ b/tests/tap/kerberos.sh @@ -0,0 +1,48 @@ +# Shell function library to initialize Kerberos credentials +# +# Written by Russ Allbery <rra@stanford.edu> +# Copyright 2009 Board of Trustees, Leland Stanford Jr. University +# +# See LICENSE for licensing terms. + +# Set up Kerberos, including the ticket cache environment variable. Bail out +# if not successful, return 0 if successful, and return 1 if Kerberos is not +# configured. Sets the global principal variable to the principal to use. +kerberos_setup () { + local keytab + keytab='' + for f in "$BUILD/data/test.keytab" "$SOURCE/data/test.keytab" ; do + if [ -r "$f" ] ; then + keytab="$f" + fi + done + principal='' + for f in "$BUILD/data/test.principal" "$SOURCE/data/test.principal" ; do + if [ -r "$f" ] ; then + principal=`cat "$BUILD/data/test.principal"` + fi + done + if [ -z "$keytab" ] || [ -z "$principal" ] ; then + return 1 + fi + KRB5CCNAME="$BUILD/data/test.cache"; export KRB5CCNAME + kinit -k -t "$keytab" "$principal" >/dev/null </dev/null + status=$? + if [ $status != 0 ] ; then + kinit -t "$keytab" "$principal" >/dev/null </dev/null + status=$? + fi + if [ $status != 0 ] ; then + kinit -k -K "$keytab" "$principal" >/dev/null </dev/null + status=$? + fi + if [ $status != 0 ] ; then + bail "Can't get Kerberos tickets" + fi + return 0 +} + +# Clean up at the end of a test. Currently only removes the ticket cache. +kerberos_cleanup () { + rm -f "$BUILD/data/test.cache" +} |