OpenPKG CVS Repository http://cvs.openpkg.org/ ____________________________________________________________________________
Server: cvs.openpkg.org Name: Ralf S. Engelschall Root: /v/openpkg/cvs Email: [email protected] Module: openpkg-src Date: 19-Dec-2008 09:13:46 Branch: HEAD Handle: 2008121908134600 Modified files: openpkg-src/apache-kerberos apache-kerberos.patch apache-kerberos.spec Log: upgrading package: apache-kerberos 5.3 -> 5.4 Summary: Revision Changes Path 1.4 +1 -125 openpkg-src/apache-kerberos/apache-kerberos.patch 1.6 +2 -2 openpkg-src/apache-kerberos/apache-kerberos.spec ____________________________________________________________________________ patch -p0 <<'@@ .' Index: openpkg-src/apache-kerberos/apache-kerberos.patch ============================================================================ $ cvs diff -u -r1.3 -r1.4 apache-kerberos.patch --- openpkg-src/apache-kerberos/apache-kerberos.patch 17 Dec 2008 12:15:06 -0000 1.3 +++ openpkg-src/apache-kerberos/apache-kerberos.patch 19 Dec 2008 08:13:46 -0000 1.4 @@ -46,7 +46,7 @@ --- spnegokrb5/der_put.c.orig 2003-09-05 10:54:08 +0200 +++ spnegokrb5/der_put.c 2007-12-22 14:24:51 +0100 @@ -37,6 +37,16 @@ - RCSID("$Id: apache-kerberos.patch,v 1.3 2008/12/17 12:15:06 rse Exp $"); + RCSID("$Id: apache-kerberos.patch,v 1.4 2008/12/19 08:13:46 rse Exp $"); #endif +#include "config.h" @@ -62,127 +62,3 @@ /* * All encoding functions take a pointer `p' to first position in * which to write, from the right, `len' which means the maximum ---- src/mod_auth_kerb.c.orig 2006-11-22 11:32:58.000000000 +0100 -+++ src/mod_auth_kerb.c 2008-12-16 19:26:27.000000000 +0100 -@@ -165,6 +165,7 @@ - char *krb_5_keytab; - int krb_method_gssapi; - int krb_method_k5pass; -+ int krb5_auth_to_local; - #endif - #ifdef KRB4 - char *krb_4_srvtab; -@@ -227,6 +228,9 @@ - - command("KrbMethodK5Passwd", ap_set_flag_slot, krb_method_k5pass, - FLAG, "Enable Kerberos V5 password authentication."), -+ -+ command("Krb5AuthToLocal", ap_set_flag_slot, krb5_auth_to_local, -+ FLAG, "Enable Kerberos V5 auth_to_local mapping."), - #endif - - #ifdef KRB4 -@@ -322,6 +326,7 @@ - #ifdef KRB5 - ((kerb_auth_config *)rec)->krb_method_k5pass = 1; - ((kerb_auth_config *)rec)->krb_method_gssapi = 1; -+ ((kerb_auth_config *)rec)->krb5_auth_to_local = 0; - #endif - #ifdef KRB4 - ((kerb_auth_config *)rec)->krb_method_k4pass = 1; -@@ -746,6 +751,79 @@ - } - - static int -+do_krb5_an_to_ln(request_rec *r, const kerb_auth_config *conf, MK_POOL *p) -+{ -+ const int lname_size = 1024; -+ -+ krb5_context kcontext; -+ krb5_principal princ; -+ krb5_error_code code; -+ char lname[lname_size]; -+ int ret; -+ -+ if (!conf->krb5_auth_to_local) { -+ return OK; -+ } -+ -+ ret = HTTP_INTERNAL_SERVER_ERROR; -+ -+ code = krb5_init_context(&kcontext); -+ if (code) { -+ log_rerror(APLOG_MARK, APLOG_ERR, 0, r, -+ "Cannot initialize Kerberos5 context (%d)", code); -+ return HTTP_INTERNAL_SERVER_ERROR; -+ } -+ -+ code = krb5_parse_name(kcontext, MK_USER, &princ); -+ if (code) { -+ log_rerror(APLOG_MARK, APLOG_ERR, 0, r, -+ "krb5_parse_name() failed for name %s: %s", -+ MK_USER, -+ krb5_get_err_text(kcontext, code)); -+ krb5_free_context(kcontext); -+ return HTTP_INTERNAL_SERVER_ERROR; -+ } -+ -+ code = krb5_aname_to_localname(kcontext, princ, sizeof(lname), lname); -+ if (code) { -+ if (code != KRB5_LNAME_NOTRANS) { -+ log_rerror(APLOG_MARK, APLOG_ERR, 0, r, -+ "krb5_aname_to_localname() failed: %s", -+ krb5_get_err_text(kcontext, code)); -+ /* fall through */ -+ } -+ else { -+ log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, -+ "krb5_aname_to_localname() found no " -+ "mapping for principal %s", -+ MK_USER); -+ /* fall through */ -+ } -+ } -+ else { -+ /* Does this belong in an authz handler? */ -+ if (!krb5_kuserok(kcontext, princ, lname)) { -+ log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, -+ "krb5_kuserok(%s, %s) == false", -+ MK_USER, lname); -+ ret = HTTP_UNAUTHORIZED; -+ } -+ else { -+ log_rerror(APLOG_MARK, APLOG_NOTICE, 0, r, -+ "doing auth_to_local: %s -> %s", -+ MK_USER, lname); -+ MK_USER = apr_pstrdup(p, lname); -+ ret = OK; -+ } -+ } -+ krb5_free_principal(kcontext, princ); -+ krb5_free_context(kcontext); -+ -+ return ret; -+} -+ -+ -+static int - krb5_cache_cleanup(void *data) - { - krb5_context context; -@@ -1536,9 +1614,15 @@ - if (use_krb5 && conf->krb_method_gssapi && - strcasecmp(auth_type, MECH_NEGOTIATE) == 0) { - ret = authenticate_user_gss(r, conf, auth_line, &negotiate_ret_value); -+ if (ret == OK) { -+ ret = do_krb5_an_to_ln(r, conf, r->connection->pool); -+ } - } else if (use_krb5 && conf->krb_method_k5pass && - strcasecmp(auth_type, "Basic") == 0) { - ret = authenticate_user_krb5pwd(r, conf, auth_line); -+ if (ret == OK) { -+ ret = do_krb5_an_to_ln(r, conf, r->pool); -+ } - } - #endif - @@ . patch -p0 <<'@@ .' Index: openpkg-src/apache-kerberos/apache-kerberos.spec ============================================================================ $ cvs diff -u -r1.5 -r1.6 apache-kerberos.spec --- openpkg-src/apache-kerberos/apache-kerberos.spec 17 Dec 2008 12:15:06 -0000 1.5 +++ openpkg-src/apache-kerberos/apache-kerberos.spec 19 Dec 2008 08:13:46 -0000 1.6 @@ -31,8 +31,8 @@ Class: EVAL Group: Web License: Open Source -Version: 5.3 -Release: 20081217 +Version: 5.4 +Release: 20081219 # list of sources Source0: http://switch.dl.sourceforge.net/modauthkerb/mod_auth_kerb-%{version}.tar.gz @@ . ______________________________________________________________________ OpenPKG http://openpkg.org CVS Repository Commit List [email protected]
