#
#  Licensed to the Apache Software Foundation (ASF) under one
#  or more contributor license agreements.  See the NOTICE file
#  distributed with this work for additional information
#  regarding copyright ownership.  The ASF licenses this file
#  to you under the Apache License, Version 2.0 (the
#  "License"); you may not use this file except in compliance
#  with the License.  You may obtain a copy of the License at
#  
#    http://www.apache.org/licenses/LICENSE-2.0
#  
#  Unless required by applicable law or agreed to in writing,
#  software distributed under the License is distributed on an
#  "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
#  KIND, either express or implied.  See the License for the
#  specific language governing permissions and limitations
#  under the License. 
#  
#   EXAMPLE.COM is reserved for testing according to this RFC:
#
#   http://www.rfc-editor.org/rfc/rfc2606.txt
#

dn: ou=users,dc=apache,dc=org
objectclass: top
objectclass: organizationalunit
ou: users

dn: uid=akarasulu,ou=users,dc=apache,dc=org
cn: Alex Karasulu
sn: Karasulu
givenname: Alex
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Jacksonville
uid: akarasulu
krb5PrincipalName: akarasulu@APACHE.ORG
krb5KeyVersionNumber: 0
mail: akarasulu@apache.org
telephonenumber: +1 904 982 6882
facsimiletelephonenumber: +1 904 982 6883
roomnumber: 666
userpassword: maxwell

dn: uid=erodriguez,ou=users,dc=apache,dc=org
cn: Enrique Rodriguez
sn: Rodriguez
givenname: Enrique
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: erodriguez
krb5PrincipalName: erodriguez@APACHE.ORG
krb5KeyVersionNumber: 0
mail: erodriguez@apache.org
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kerby

dn: uid=krbtgt,ou=users,dc=apache,dc=org
cn: Kerberos Server
sn: Server
givenname: Kerberos
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: krbtgt
krb5PrincipalName: krbtgt/APACHE.ORG@APACHE.ORG
krb5KeyVersionNumber: 0
mail: erodriguez@apache.org
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kahuna

dn: uid=hostssh,ou=users,dc=apache,dc=org
cn: SSH Service
sn: Service
givenname: SSH
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: hostssh
krb5PrincipalName: host/www.apache.org@APACHE.ORG
krb5KeyVersionNumber: 0
mail: erodriguez@apache.org
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: randall

dn: uid=kadmin,ou=users,dc=apache,dc=org
cn: Changepw Server
sn: Server
givenname: Changepw
objectclass: top
objectclass: person
objectclass: organizationalPerson
objectclass: inetOrgPerson
objectclass: krb5Principal
objectclass: krb5KDCEntry
ou: Directory
ou: users
l: Boston
uid: kadmin
krb5PrincipalName: kadmin/changepw@APACHE.ORG
krb5KeyVersionNumber: 0
mail: erodriguez@apache.org
telephonenumber: +1 408 555 9187
facsimiletelephonenumber: +1 408 555 8473
roomnumber: 667
userpassword: kahuna
