3 # Copyright (c) 2006 - 2007 Kungliga Tekniska Högskolan
4 # (Royal Institute of Technology, Stockholm, Sweden).
7 # Redistribution and use in source and binary forms, with or without
8 # modification, are permitted provided that the following conditions
11 # 1. Redistributions of source code must retain the above copyright
12 # notice, this list of conditions and the following disclaimer.
14 # 2. Redistributions in binary form must reproduce the above copyright
15 # notice, this list of conditions and the following disclaimer in the
16 # documentation and/or other materials provided with the distribution.
18 # 3. Neither the name of the Institute nor the names of its contributors
19 # may be used to endorse or promote products derived from this software
20 # without specific prior written permission.
22 # THIS SOFTWARE IS PROVIDED BY THE INSTITUTE AND CONTRIBUTORS ``AS IS'' AND
23 # ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
24 # IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
25 # ARE DISCLAIMED. IN NO EVENT SHALL THE INSTITUTE OR CONTRIBUTORS BE LIABLE
26 # FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
27 # DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
28 # OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
29 # HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
30 # LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
31 # OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
41 # Disable test if: no data, no java, or socket wrapper
42 ..
/db
/have-db ||
exit 77
43 sh
${srcdir}/have-java.sh ||
exit 77
44 [ X
"$SOCKET_WRAPPER_DIR" != X
] && exit 77
48 keytabfile
="${objdir}/server.keytab"
49 keytab
="FILE:${keytabfile}"
50 cache
="FILE:${objdir}/cache.krb5"
52 kinit
="${TESTS_ENVIRONMENT} ../../kuser/kinit -c $cache ${afs_no_afslog}"
53 kadmin
="${TESTS_ENVIRONMENT} ../../kadmin/kadmin -l -r $R"
54 kdc
="${TESTS_ENVIRONMENT} ../../kdc/kdc --addresses=127.0.0.1 -P $port"
55 gssclient
="${TESTS_ENVIRONMENT} ../../appl/test/gssapi_client"
57 KRB5_CONFIG
="${objdir}/krb5.conf"
60 rm -f ${keytabfile} messages.log
66 javac
-d "${objdir}" "${srcdir}/KerberosInit.java" || \
67 { echo "Failed to compile java program: $?" ; exit 77; }
70 javac
-d "${objdir}" "${srcdir}/../../appl/test/jgssapi_server.java" || \
71 { echo "Failed to compile java program: $?" ; exit 77; }
75 echo foo
> ${objdir}/foopassword
77 echo Creating database
80 --realm-max-ticket-life=1day \
81 --realm-max-renewable-life=1month \
84 ${kadmin} add
-p foo
--use-defaults lha@
${R} ||
exit 1
85 ${kadmin} modify
--attributes=+requires-pre-auth lha@
${R} ||
exit 1
86 ${kadmin} add -p kaka --use-defaults ${server}@${R} ||
exit 1
87 ${kadmin} ext -k ${keytab} ${server}@${R} ||
exit 1
93 sh
${srcdir}/..
/kdc
/wait-kdc.sh
94 if [ "$?" != 0 ] ; then
99 trap "kill -9 ${kdcpid}; echo signal killing kdc; exit 1;" EXIT
103 -Dsun.security.krb5.debug
=true \
104 -Djava.security.krb5.conf
="${objdir}"/krb5.conf \
105 -Djava.security.auth.login.config
="${srcdir}/jaas.conf" \
106 KerberosInit
> output.tmp
2>&1 ||
{ cat output.tmp
; exit 1; }
109 # Disabled because of:
111 # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077646
112 # http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=7077640
119 -Dsun.security.krb5.debug
=true \
120 -Djava.security.krb5.conf
="${objdir}"/krb5.conf \
121 -Djavax.security.auth.useSubjectCredsOnly
=false \
122 -Djava.security.auth.login.config
="${srcdir}/jaas.conf" \
123 jgssapi_server
> output.tmp
2>&1 &
127 trap "kill -9 ${kdcpid} ${javapid}; echo signal killing kdc java; exit 1;" EXIT
129 echo "Getting client initial tickets"; > messages.log
130 ${kinit} --password-file=${objdir}/foopassword lha@
$R || \
131 { echo "kinit failed" ; exit 1; }
133 env KRB5CCNAME
=${cache} \
134 ${gssclient} --port=4717 --service=host localhost ||
exit 1
140 grep 'Exception in thread' output.tmp
&& exit 1
145 echo "killing kdc (${kdcpid} ${javapid})"
146 kill $kdcpid $javapid ||
exit 1