add `krb4_get_tickets' per realm

add --anonymous


git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@8020 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
Assar Westerlund
2000-03-04 16:02:41 +00:00
parent 6b19ae7506
commit 24738e4449

View File

@@ -34,14 +34,15 @@
#include "kuser_locl.h"
RCSID("$Id$");
int forwardable = 0;
int proxiable = 0;
int renewable = 0;
int forwardable_flag = 0;
int proxiable_flag = 0;
int renewable_flag = 0;
int renew_flag = 0;
int validate_flag = 0;
int version_flag = 0;
int help_flag = 0;
int addrs_flag = 1;
int anonymous_flag = 0;
char *lifetime = NULL;
char *renew_life = NULL;
char *server = NULL;
@@ -67,7 +68,7 @@ struct getargs args[] = {
{ "cache", 'c', arg_string, &cred_cache,
"credentials cache", "cachename" },
{ "forwardable", 'f', arg_flag, &forwardable,
{ "forwardable", 'f', arg_flag, &forwardable_flag,
"get forwardable tickets"},
{ "keytab", 't', arg_string, &keytab_str,
@@ -76,13 +77,13 @@ struct getargs args[] = {
{ "lifetime", 'l', arg_string, &lifetime,
"lifetime of tickets", "seconds"},
{ "proxiable", 'p', arg_flag, &proxiable,
{ "proxiable", 'p', arg_flag, &proxiable_flag,
"get proxiable tickets" },
{ "renew", 'R', arg_flag, &renew_flag,
"renew TGT" },
{ "renewable", 0, arg_flag, &renewable,
{ "renewable", 0, arg_flag, &renewable_flag,
"get renewable tickets" },
{ "renewable-life", 'r', arg_string, &renew_life,
@@ -109,6 +110,9 @@ struct getargs args[] = {
{ "addresses", 0, arg_negative_flag, &addrs_flag,
"request a ticket with no addresses" },
{ "anonymous", 0, arg_flag, &anonymous_flag,
"request an anonymous ticket" },
{ "version", 0, arg_flag, &version_flag },
{ "help", 0, arg_flag, &help_flag }
};
@@ -159,10 +163,11 @@ renew_validate(krb5_context context,
}
}
flags.i = 0;
flags.b.renewable = flags.b.renew = renew;
flags.b.validate = validate;
flags.b.forwardable = forwardable;
flags.b.proxiable = proxiable;
flags.b.renewable = flags.b.renew = renew;
flags.b.validate = validate;
flags.b.forwardable = forwardable_flag;
flags.b.proxiable = proxiable_flag;
flags.b.request_anonymous = anonymous_flag;
if(life)
in.times.endtime = time(NULL) + life;
@@ -215,10 +220,10 @@ main (int argc, char **argv)
if (ret)
errx(1, "krb5_init_context failed: %u", ret);
forwardable = krb5_config_get_bool (context, NULL,
"libdefaults",
"forwardable",
NULL);
forwardable_flag = krb5_config_get_bool (context, NULL,
"libdefaults",
"forwardable",
NULL);
#ifdef KRB4
get_v4_tgt = krb5_config_get_bool_default (context, NULL,
@@ -264,8 +269,9 @@ main (int argc, char **argv)
krb5_get_init_creds_opt_init (&opt);
krb5_get_init_creds_opt_set_forwardable (&opt, forwardable);
krb5_get_init_creds_opt_set_proxiable (&opt, proxiable);
krb5_get_init_creds_opt_set_forwardable (&opt, forwardable_flag);
krb5_get_init_creds_opt_set_proxiable (&opt, proxiable_flag);
krb5_get_init_creds_opt_set_anonymous (&opt, anonymous_flag);
if (!addrs_flag) {
no_addrs.len = 0;
@@ -280,7 +286,7 @@ main (int argc, char **argv)
errx (1, "unparsable time: %s", renew_life);
krb5_get_init_creds_opt_set_renew_life (&opt, tmp);
} else if (renewable)
} else if (renewable_flag)
krb5_get_init_creds_opt_set_renew_life (&opt, 1 << 30);
if(ticket_life != 0)
@@ -321,8 +327,22 @@ main (int argc, char **argv)
ret = krb5_parse_name (context, argv[0], &principal);
if (ret)
krb5_err (context, 1, ret, "krb5_parse_name");
} else
principal = NULL;
} else {
ret = krb5_get_default_principal (context, &principal);
if (ret)
krb5_err (context, 1, ret, "krb5_get_default_principal");
}
#ifdef KRB4
get_v4_tgt = krb5_config_get_bool_default (context,
NULL,
get_v4_tgt,
"realms",
krb5_princ_realm(context,
principal),
"krb4_get_tickets",
NULL);
#endif
if(use_keytab || keytab_str) {
krb5_keytab kt;