Commit 854eab96 authored by Christophe Jaillet's avatar Christophe Jaillet
Browse files

If several parameters are used in a AuthzProviderAlias directive, if these...

If several parameters are used in a AuthzProviderAlias directive, if these parameters are not enclosed in quotation mark, only the first one is handled. The other ones are silently ignored.

Add a message to warn about such a spurious configuration.
PR 62469

git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@1834209 13f79535-47bb-0310-9956-ffa450edef68
parent 568f498a
Loading
Loading
Loading
Loading
+5 −0
Changes for CHANGES: 5 added lines, 0 removed lines.
Original line number Diff line number Diff line
                                                         -*- coding: utf-8 -*-
Changes with Apache 2.5.1
  *) mod_authz_core: If several parameters are used in a AuthzProviderAlias
     directive, if these parameters are not enclosed in quotation mark, only
     the first one is handled. The other ones are silently ignored.
     Add a message to warn about such a spurious configuration.
     PR 62469 [Hank Ibell <hwibell gmail.com>, Christophe Jaillet]

  *) mod_proxy_wstunnel: Add default schema ports for 'ws' and 'wss'.
     PR 62480. [Lubos Uhliarik <luhliari redhat.com>}
+1 −1
Changes for docs/log-message-tags/next-number: 1 added line, 1 removed line.
Original line number Diff line number Diff line
10142
10143
+17 −0
Changes for docs/manual/mod/mod_authz_core.xml: 17 added lines, 0 removed lines.
Original line number Diff line number Diff line
@@ -600,6 +600,23 @@ alias</description>
    authorization directives that can be referenced by the alias name using the
    directive <directive module="mod_authz_core">Require</directive>.</p>

    <p>If several parameters are needed in <var>Require-Parameters</var>,
    they must be enclosed in quotation marks.  Otherwise, only the first one
    is taken into account.</p>
    
    <highlight language="config">
# In this example, for both addresses to be taken into account, they MUST be enclosed
# between quotation marks
&lt;AuthzProviderAlias ip blacklisted-ips "XXX.XXX.XXX.XXX YYY.YYY.YYY.YYY"&gt;
&lt;/AuthzProviderAlias&gt;

&lt;Directory "/path/to/dir"&gt;
    &lt;RequireAll&gt;
        Require not blacklisted-ips
        Require all granted
    &lt;/RequireAll&gt;
&lt;/Directory&gt;
    </highlight>
</usage>
</directivesynopsis>

+12 −1
Changes for modules/aaa/mod_authz_core.c: 12 added lines, 1 removed line.
Original line number Diff line number Diff line
@@ -253,7 +253,7 @@ static const char *authz_require_alias_section(cmd_parms *cmd, void *mconfig,
    const char *endp = ap_strrchr_c(args, '>');
    char *provider_name;
    char *provider_alias;
    char *provider_args;
    char *provider_args, *extra_args;
    ap_conf_vector_t *new_authz_config;
    int old_overrides = cmd->override;
    const char *errmsg;
@@ -279,12 +279,23 @@ static const char *authz_require_alias_section(cmd_parms *cmd, void *mconfig,
    provider_name = ap_getword_conf(cmd->pool, &args);
    provider_alias = ap_getword_conf(cmd->pool, &args);
    provider_args = ap_getword_conf(cmd->pool, &args);
    extra_args = ap_getword_conf(cmd->pool, &args);

    if (!provider_name[0] || !provider_alias[0]) {
        return apr_pstrcat(cmd->pool, cmd->cmd->name,
                           "> directive requires additional arguments", NULL);
    }
    
    /* We only handle one "Require-Parameters" parameter.  If several parameters
       are needed, they must be enclosed between quotes */
    if (extra_args && *extra_args) {
        ap_log_error(APLOG_MARK, APLOG_WARNING, 0, cmd->server, APLOGNO(10142)
                     "When several arguments (%s %s...) are passed to a %s directive, "
                     "they must be enclosed in quotation marks.  Otherwise, only the "
                     "first one is taken into account",
                     provider_args, extra_args, cmd->cmd->name);
    }

    new_authz_config = ap_create_per_dir_config(cmd->pool);

    /* Walk the subsection configuration to get the per_dir config that we will