Commit 60b4dc95 authored by Joe Orton's avatar Joe Orton
Browse files

Backport from HEAD: add "SSLUserName" directive to set r->user based

on a chosen SSL environment variable name.

* modules/ssl/mod_ssl.h (struct SSLDirConfigRec): Add
szUserName field.

* modules/ssl/ssl_engine_config.c (ssl_config_perdir_create,
ssl_config_perdir_merge): Initialize and merge szUserName field.
(ssl_cmd_SSLUserName): New function.

* modules/ssl/ssl_engine_kernel.c (ssl_hook_Fixup): Set r->user to
the value of the chosen SSL environment variable.

* modules/ssl/mod_ssl.c: Add SSLUserName config directive.

PR: 20957
Submitted by: Martin v. Loewis
Reviewed by: trawick, jorton, nd


git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/branches/APACHE_2_0_BRANCH@104770 13f79535-47bb-0310-9956-ffa450edef68
parent a97be514
Loading
Loading
Loading
Loading
+4 −0
Changes for CHANGES: 4 added lines, 0 removed lines.
Original line number Diff line number Diff line
Changes with Apache 2.0.51
  *) mod_ssl: Add "SSLUserName" directive to set r->user based on a
     chosen SSL environment variable.  PR 20957. 
     [Martin v. Loewis <martin v.loewis.de>]
  *) suexec: Pass the SERVER_SIGNATURE envvar through to CGIs.
     [Zvi Har'El <rl math.technion.ac.il>]
+1 −9
Changes for STATUS: 1 added line, 9 removed lines.
Original line number Diff line number Diff line
APACHE 2.0 STATUS:                                              -*-text-*-
Last modified at [$Date: 2004/08/23 15:07:18 $]
Last modified at [$Date: 2004/08/23 15:18:54 $]

Release:

@@ -153,14 +153,6 @@ PATCHES TO BACKPORT FROM 2.1
       0: nd: IMHO that's a public API change then and not applicable for
              2.0, just let 'em in

    *) mod_ssl: Add "SSLUserName" directive to set r->user based on a
       chosen SSL environment variable.  PR 20957. 
         mod_ssl.c r1.99
         ssl_engine_config.c r1.94
         ssl_engine_kernel.c r1.107
         ssl_private.h r1.7
       +1: trawick, jorton, nd

    *) Prevent Win32 pool corruption at startup
         server/mpm/winnt/child.c: r1.36 
       +1: ake, trawick, nd, stoddard
+2 −0
Changes for modules/ssl/mod_ssl.c: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -133,6 +133,8 @@ static const command_rec ssl_config_cmds[] = {
    SSL_CMD_SRV(Protocol, RAW_ARGS,
                "Enable or disable various SSL protocols"
                "(`[+-][SSLv2|SSLv3|TLSv1] ...' - see manual)")
    SSL_CMD_ALL(UserName, TAKE1,
		"Set user name to SSL variable value")

    /* 
     * Proxy configuration for remote SSL connections
+2 −0
Changes for modules/ssl/mod_ssl.h: 2 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -502,6 +502,7 @@ typedef struct {
    int           nVerifyDepth;
    const char   *szCACertificatePath;
    const char   *szCACertificateFile;
    const char   *szUserName;
} SSLDirConfigRec;

/*
@@ -543,6 +544,7 @@ const char *ssl_cmd_SSLProtocol(cmd_parms *, void *, const char *);
const char  *ssl_cmd_SSLOptions(cmd_parms *, void *, const char *);
const char  *ssl_cmd_SSLRequireSSL(cmd_parms *, void *);
const char  *ssl_cmd_SSLRequire(cmd_parms *, void *, const char *);
const char  *ssl_cmd_SSLUserName(cmd_parms *, void *, const char *);

const char *ssl_cmd_SSLProxyEngine(cmd_parms *cmd, void *dcfg, int flag);
const char  *ssl_cmd_SSLProxyProtocol(cmd_parms *, void *, const char *);
+9 −0
Changes for modules/ssl/ssl_engine_config.c: 9 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -286,6 +286,7 @@ void *ssl_config_perdir_create(apr_pool_t *p, char *dir)

    dc->szCACertificatePath    = NULL;
    dc->szCACertificateFile    = NULL;
    dc->szUserName             = NULL;

    return dc;
}
@@ -322,6 +323,7 @@ void *ssl_config_perdir_merge(apr_pool_t *p, void *basev, void *addv)

    cfgMergeString(szCACertificatePath);
    cfgMergeString(szCACertificateFile);
    cfgMergeString(szUserName);

    return mrg;
}
@@ -1393,3 +1395,10 @@ const char *ssl_cmd_SSLProxyMachineCertificatePath(cmd_parms *cmd,
}


const char *ssl_cmd_SSLUserName(cmd_parms *cmd, void *dcfg, 
				const char *arg)
{
    SSLDirConfigRec *dc = (SSLDirConfigRec *)dcfg;
    dc->szUserName = arg;
    return NULL;
}
Loading