use krb5_appdefault_boolean instead of krb5_config_get_bool
git-svn-id: svn://svn.h5l.se/heimdal/trunk/heimdal@14203 ec53bebd-3082-4978-b11e-865c3cabbd6b
This commit is contained in:
@@ -181,21 +181,19 @@ krb5_to4 (krb5_ccache id)
|
|||||||
|
|
||||||
int get_v4_tgt;
|
int get_v4_tgt;
|
||||||
|
|
||||||
get_v4_tgt = krb5_config_get_bool(context, NULL,
|
|
||||||
"libdefaults",
|
|
||||||
"krb4_get_tickets",
|
|
||||||
NULL);
|
|
||||||
|
|
||||||
ret = krb5_cc_get_principal(context, id, &princ);
|
ret = krb5_cc_get_principal(context, id, &princ);
|
||||||
if (ret == 0) {
|
if(ret == 0) {
|
||||||
get_v4_tgt = krb5_config_get_bool_default(context, NULL,
|
krb5_appdefault_boolean(context, "login",
|
||||||
get_v4_tgt,
|
krb5_principal_get_realm(context, princ),
|
||||||
"realms",
|
"krb4_get_tickets", FALSE, &get_v4_tgt);
|
||||||
*krb5_princ_realm(context,
|
|
||||||
princ),
|
|
||||||
"krb4_get_tickets",
|
|
||||||
NULL);
|
|
||||||
krb5_free_principal(context, princ);
|
krb5_free_principal(context, princ);
|
||||||
|
} else {
|
||||||
|
krb5_realm realm = NULL;
|
||||||
|
krb5_get_default_realm(context, &realm);
|
||||||
|
krb5_appdefault_boolean(context, "login",
|
||||||
|
realm,
|
||||||
|
"krb4_get_tickets", FALSE, &get_v4_tgt);
|
||||||
|
free(realm);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (get_v4_tgt) {
|
if (get_v4_tgt) {
|
||||||
|
@@ -579,6 +579,7 @@ verify_krb5(const char *password)
|
|||||||
{
|
{
|
||||||
krb5_error_code ret;
|
krb5_error_code ret;
|
||||||
krb5_ccache id;
|
krb5_ccache id;
|
||||||
|
krb5_boolean get_v4_tgt;
|
||||||
|
|
||||||
krb5_cc_default(context, &id);
|
krb5_cc_default(context, &id);
|
||||||
ret = krb5_verify_user(context,
|
ret = krb5_verify_user(context,
|
||||||
@@ -589,10 +590,10 @@ verify_krb5(const char *password)
|
|||||||
NULL);
|
NULL);
|
||||||
if (ret == 0){
|
if (ret == 0){
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
if (krb5_config_get_bool(context, NULL,
|
krb5_appdefault_boolean(context, "xnlock",
|
||||||
"libdefaults",
|
krb5_principal_get_realm(context, client),
|
||||||
"krb4_get_tickets",
|
"krb4_get_tickets", FALSE, &get_v4_tgt);
|
||||||
NULL)) {
|
if(get_v4_tgt) {
|
||||||
CREDENTIALS c;
|
CREDENTIALS c;
|
||||||
krb5_creds mcred, cred;
|
krb5_creds mcred, cred;
|
||||||
|
|
||||||
|
@@ -163,49 +163,53 @@ verify_krb5(struct passwd *pwd,
|
|||||||
}
|
}
|
||||||
|
|
||||||
#ifdef KRB4
|
#ifdef KRB4
|
||||||
if (krb5_config_get_bool(context, NULL,
|
{
|
||||||
"libdefaults",
|
krb5_realm realm = NULL;
|
||||||
"krb4_get_tickets",
|
krb5_boolean get_v4_tgt;
|
||||||
NULL)) {
|
|
||||||
CREDENTIALS c;
|
|
||||||
krb5_creds mcred, cred;
|
|
||||||
krb5_realm realm;
|
|
||||||
|
|
||||||
krb5_cc_clear_mcred(&mcred);
|
krb5_get_default_realm(context, &realm);
|
||||||
|
krb5_appdefault_boolean(context, "afskauthlib",
|
||||||
|
realm,
|
||||||
|
"krb4_get_tickets", FALSE, &get_v4_tgt);
|
||||||
|
if (get_v4_tgt) {
|
||||||
|
CREDENTIALS c;
|
||||||
|
krb5_creds mcred, cred;
|
||||||
|
|
||||||
krb5_get_default_realm(context, &realm);
|
krb5_cc_clear_mcred(&mcred);
|
||||||
krb5_make_principal(context, &mcred.server, realm,
|
|
||||||
"krbtgt",
|
krb5_make_principal(context, &mcred.server, realm,
|
||||||
realm,
|
"krbtgt",
|
||||||
NULL);
|
realm,
|
||||||
free (realm);
|
NULL);
|
||||||
ret = krb5_cc_retrieve_cred(context, ccache, 0, &mcred, &cred);
|
ret = krb5_cc_retrieve_cred(context, ccache, 0, &mcred, &cred);
|
||||||
if(ret == 0) {
|
if(ret == 0) {
|
||||||
ret = krb524_convert_creds_kdc_ccache(context, ccache, &cred, &c);
|
ret = krb524_convert_creds_kdc_ccache(context, ccache, &cred, &c);
|
||||||
if(ret)
|
if(ret)
|
||||||
krb5_warn(context, ret, "converting creds");
|
krb5_warn(context, ret, "converting creds");
|
||||||
else {
|
else {
|
||||||
set_krbtkfile(pwd->pw_uid);
|
set_krbtkfile(pwd->pw_uid);
|
||||||
tf_setup(&c, c.pname, c.pinst);
|
tf_setup(&c, c.pname, c.pinst);
|
||||||
}
|
}
|
||||||
memset(&c, 0, sizeof(c));
|
memset(&c, 0, sizeof(c));
|
||||||
krb5_free_cred_contents(context, &cred);
|
krb5_free_cred_contents(context, &cred);
|
||||||
} else
|
} else
|
||||||
syslog(LOG_AUTH|LOG_DEBUG, "krb5_cc_retrieve_cred: %s",
|
syslog(LOG_AUTH|LOG_DEBUG, "krb5_cc_retrieve_cred: %s",
|
||||||
krb5_get_err_text(context, ret));
|
krb5_get_err_text(context, ret));
|
||||||
|
|
||||||
krb5_free_principal(context, mcred.server);
|
krb5_free_principal(context, mcred.server);
|
||||||
}
|
}
|
||||||
if (!pag_set && k_hasafs()) {
|
free (realm);
|
||||||
k_setpag();
|
if (!pag_set && k_hasafs()) {
|
||||||
pag_set = 1;
|
k_setpag();
|
||||||
}
|
pag_set = 1;
|
||||||
|
}
|
||||||
|
|
||||||
if (pag_set)
|
if (pag_set)
|
||||||
krb5_afslog_uid_home(context, ccache, NULL, NULL,
|
krb5_afslog_uid_home(context, ccache, NULL, NULL,
|
||||||
pwd->pw_uid, pwd->pw_dir);
|
pwd->pw_uid, pwd->pw_dir);
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
out:
|
out:
|
||||||
if(ret && !quiet)
|
if(ret && !quiet)
|
||||||
printf ("%s\n", krb5_get_err_text (context, ret));
|
printf ("%s\n", krb5_get_err_text (context, ret));
|
||||||
return ret;
|
return ret;
|
||||||
|
Reference in New Issue
Block a user