environment variable name.
* modules/ssl/ssl_private.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 <martin v.loewis.de>
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@103834
13f79535-47bb-0310-9956-
ffa450edef68
[Remove entries to the current 2.0 section below, when backported]
+ *) 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>]
+
*) mod_ssl: Add "SSLHonorCipherOrder" directive to enable the
OpenSSL 0.9.7 flag which uses the server's cipher order rather
- than the client's.
- PR 28665. [Jim Schneider <jschneid netilla.com>]
+ than the client's. PR 28665.
+ [Jim Schneider <jschneid netilla.com>]
*) mod_ssl: Drop support for the CompatEnvVars argument to
SSLOptions, which was never actually implemented in 2.0.
"(`[+-][SSLv2|SSLv3|TLSv1] ...' - see manual)")
SSL_CMD_SRV(HonorCipherOrder, FLAG,
"Use the server's cipher ordering preference")
+ SSL_CMD_ALL(UserName, TAKE1,
+ "Set user name to SSL variable value")
/*
* Proxy configuration for remote SSL connections
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
*/
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_SSLProxyEngine(cmd_parms *cmd, void *dcfg, int flag);
const char *ssl_cmd_SSLProxyProtocol(cmd_parms *, void *, const char *);
const char *ssl_cmd_SSLProxyCipherSuite(cmd_parms *, void *, const char *);
const char *ssl_cmd_SSLProxyVerify(cmd_parms *, void *, const char *);