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
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>]
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:
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
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
int nVerifyDepth;
const char *szCACertificatePath;
const char *szCACertificateFile;
+ const char *szUserName;
} SSLDirConfigRec;
/*
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 *);
dc->szCACertificatePath = NULL;
dc->szCACertificateFile = NULL;
+ dc->szUserName = NULL;
return dc;
}
cfgMergeString(szCACertificatePath);
cfgMergeString(szCACertificateFile);
+ cfgMergeString(szUserName);
return mrg;
}
}
+const char *ssl_cmd_SSLUserName(cmd_parms *cmd, void *dcfg,
+ const char *arg)
+{
+ SSLDirConfigRec *dc = (SSLDirConfigRec *)dcfg;
+ dc->szUserName = arg;
+ return NULL;
+}
return DECLINED;
}
+ /*
+ * Set r->user if requested
+ */
+ if (dc->szUserName) {
+ val = ssl_var_lookup(r->pool, r->server, r->connection,
+ r, (char *)dc->szUserName);
+ if (val && val[0]) {
+ r->user = val;
+ }
+ }
+
/*
* Annotate the SSI/CGI environment with standard SSL information
*/