diff options
author | Andrew Bartlett <abartlet@samba.org> | 2009-06-30 12:11:14 +1000 |
---|---|---|
committer | Andrew Bartlett <abartlet@samba.org> | 2009-06-30 12:11:14 +1000 |
commit | 89a074b784295204aa8d7dd585bf3533ac7971a7 (patch) | |
tree | 830e6fd5cf0e3924e8735abd4530f6eba3bf4b86 /source4/heimdal/kdc/kerberos5.c | |
parent | 6ba0e7f7b21b7b7e57d92c1aa90331cb93964217 (diff) | |
download | samba-89a074b784295204aa8d7dd585bf3533ac7971a7.tar.gz samba-89a074b784295204aa8d7dd585bf3533ac7971a7.tar.xz samba-89a074b784295204aa8d7dd585bf3533ac7971a7.zip |
s4:heimdal Allow KRB5_NT_ENTERPRISE names in all DB lookups
The previous code only allowed an KRB5_NT_ENTERPRISE name (an e-mail
list user principal name) in an AS-REQ. Evidence from the wild
(Win2k8 reportadely) indicates that this is instead valid for all
types of requests.
While this is now handled in heimdal/kdc/misc.c, a flag is now defined
in Heimdal's hdb so that we can take over this handling in future (once we start
using a system Heimdal, and if we find out there is more to be done
here).
Andrew Bartlett
Diffstat (limited to 'source4/heimdal/kdc/kerberos5.c')
-rw-r--r-- | source4/heimdal/kdc/kerberos5.c | 28 |
1 files changed, 6 insertions, 22 deletions
diff --git a/source4/heimdal/kdc/kerberos5.c b/source4/heimdal/kdc/kerberos5.c index ac495b1ac7..e364dcc1d1 100644 --- a/source4/heimdal/kdc/kerberos5.c +++ b/source4/heimdal/kdc/kerberos5.c @@ -925,28 +925,12 @@ _kdc_as_rep(krb5_context context, ret = KRB5KRB_ERR_GENERIC; e_text = "No client in request"; } else { - - if (b->cname->name_type == KRB5_NT_ENTERPRISE_PRINCIPAL) { - if (b->cname->name_string.len != 1) { - kdc_log(context, config, 0, - "AS-REQ malformed canon request from %s, " - "enterprise name with %d name components", - from, b->cname->name_string.len); - ret = KRB5_PARSE_MALFORMED; - goto out; - } - ret = krb5_parse_name(context, b->cname->name_string.val[0], - &client_princ); - if (ret) - goto out; - } else { - ret = _krb5_principalname2krb5_principal (context, - &client_princ, - *(b->cname), - b->realm); - if (ret) - goto out; - } + ret = _krb5_principalname2krb5_principal (context, + &client_princ, + *(b->cname), + b->realm); + if (ret) + goto out; ret = krb5_unparse_name(context, client_princ, &client_name); } |