kinit: Add --cache-default-for flag (fix check-cc)
This commit is contained in:
		| @@ -100,6 +100,10 @@ Supported options: | |||||||
| .It Fl c Ar cachename Fl Fl cache= Ns Ar cachename | .It Fl c Ar cachename Fl Fl cache= Ns Ar cachename | ||||||
| The credentials cache to put the acquired ticket in, if other than | The credentials cache to put the acquired ticket in, if other than | ||||||
| default. | default. | ||||||
|  | .It Fl Fl cache-default-for | ||||||
|  | Use a cache in the default collection (for the default cache type) | ||||||
|  | named after the client principal.  This is useful for users with | ||||||
|  | multiple client principals. | ||||||
| .It Fl f Fl Fl forwardable | .It Fl f Fl Fl forwardable | ||||||
| Obtain a ticket than can be forwarded to another host. | Obtain a ticket than can be forwarded to another host. | ||||||
| .It Fl F Fl Fl no-forwardable | .It Fl F Fl Fl no-forwardable | ||||||
|   | |||||||
| @@ -56,6 +56,7 @@ 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 default_for_flag	= 0; | ||||||
| struct getarg_strings extra_addresses; | struct getarg_strings extra_addresses; | ||||||
| int anonymous_flag	= 0; | int anonymous_flag	= 0; | ||||||
| char *lifetime 		= NULL; | char *lifetime 		= NULL; | ||||||
| @@ -108,6 +109,9 @@ static struct getargs args[] = { | |||||||
|     { "cache", 		'c', arg_string, &cred_cache, |     { "cache", 		'c', arg_string, &cred_cache, | ||||||
|       NP_("credentials cache", ""), "cachename" }, |       NP_("credentials cache", ""), "cachename" }, | ||||||
|  |  | ||||||
|  |     { "cache-default-for"  , 0, arg_flag, &default_for_flag, | ||||||
|  |       NP_("name cache after client principal", ""), NULL }, | ||||||
|  |  | ||||||
|     { "forwardable",	'F', arg_negative_flag, &forwardable_flag, |     { "forwardable",	'F', arg_negative_flag, &forwardable_flag, | ||||||
|       NP_("get tickets not forwardable", ""), NULL }, |       NP_("get tickets not forwardable", ""), NULL }, | ||||||
|  |  | ||||||
| @@ -1475,9 +1479,11 @@ main(int argc, char **argv) | |||||||
| 				krb5_principal_get_realm(context, principal), | 				krb5_principal_get_realm(context, principal), | ||||||
| 				"afslog", TRUE, &do_afslog); | 				"afslog", TRUE, &do_afslog); | ||||||
|  |  | ||||||
|     if (cred_cache) |     if (cred_cache) { | ||||||
| 	ret = krb5_cc_resolve(context, cred_cache, &ccache); | 	ret = krb5_cc_resolve(context, cred_cache, &ccache); | ||||||
|     else { |     } else if (default_for_flag) { | ||||||
|  |         ret = krb5_cc_default_for(context, principal, &ccache); | ||||||
|  |     } else { | ||||||
| 	if (argc > 1) { | 	if (argc > 1) { | ||||||
| 	    char s[1024]; | 	    char s[1024]; | ||||||
| 	    ret = krb5_cc_new_unique(context, NULL, NULL, &ccache); | 	    ret = krb5_cc_new_unique(context, NULL, NULL, &ccache); | ||||||
|   | |||||||
| @@ -139,8 +139,8 @@ export KRB5_CONFIG | |||||||
| unset KRB5CCNAME | unset KRB5CCNAME | ||||||
| rm -rf ${objdir}/kt ${objdir}/cc_dir | rm -rf ${objdir}/kt ${objdir}/cc_dir | ||||||
| mkdir ${objdir}/cc_dir || { ec=1 ; eval "${testfailed}"; } | mkdir ${objdir}/cc_dir || { ec=1 ; eval "${testfailed}"; } | ||||||
| ${kinit} foo@${R} || { ec=1 ; eval "${testfailed}"; } | ${kinit} --cache-default-for foo@${R} || { ec=1 ; eval "${testfailed}"; } | ||||||
| ${kinit} --no-change-default bar@${R} || { ec=1 ; eval "${testfailed}"; } | ${kinit} --cache-default-for --no-change-default bar@${R} || { ec=1 ; eval "${testfailed}"; } | ||||||
| primary=`cat ${objdir}/cc_dir/primary` | primary=`cat ${objdir}/cc_dir/primary` | ||||||
| [ "x$primary" = xtkt.foo@${R} ] || { ec=1 ; eval "${testfailed}"; } | [ "x$primary" = xtkt.foo@${R} ] || { ec=1 ; eval "${testfailed}"; } | ||||||
| ${klist} -l | | ${klist} -l | | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user
	 Nicolas Williams
					Nicolas Williams