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