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:
@@ -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;
|
||||
|
Reference in New Issue
Block a user