in our DAV examples (in particular, POST). Also
change <Location> to <Directory> in the docs. This
particular example was not a security problem because
<Location> was being used to *extend* access, rather than
to *restrict* access, but it is better to encourage
people to use <Directory> by default.
PR: 40030
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@433694 13f79535-47bb-0310-9956-ffa450edef68
Merge from branches/authz-dev
Basically here is a list of what has been done:
- Convert all of the authz modules from hook based to provider based
- Remove the ap_requires field from the core_dir_config structure
- Remove the function ap_requires() since its functionality is no
longer supported or necessary in the refactoring
- Remove the calls to ap_some_auth_required() in the core request
handling to allow the hooks to be called in all cases.
- Add the new module mod_authz_core which will act as the authorization
provider vector and contain common authz directives such as 'Require',
'Reject' and '<RequireAlias>'
- Add the new module mod_authn_core which will contain common
authentication directives such as 'AuthType', 'AuthName' and
'<AuthnProviderAlias>'
- Move the check for METHOD_MASK out of the authz providers and into
the authz_core provider vector
- Define the status codes that can be returned by the authz providers
as AUTHZ_DENIED, AUTHZ_GRANTED and AUTHZ_GENERAL_ERROR
- Remove the 'Satisfy' directive
- Implement the '<RequireAll>', '<RequireOne>' block directives to
handle the 'and' and 'or' logic for authorization.
- Remove the 'AuthzXXXAuthoritative' directives from all of the authz
providers
- Implement the 'Reject' directive that will deny authorization if the
argument is true
- Fold the 'Reject' directive into the '<RequireAll>', '<RequireOne>'
logic
- Reimplement the host based authorization functionality provided by
'allow', 'deny' and 'order' as authz providers
- Remove the 'allow', 'deny' and 'order' directives
- Merge mod_authn_alias into mod_authn_core
- Add '<RequireAlias>' functionality which is similar to
'<AuthnProviderAlias>' but specific to authorization aliasing
- Remove all of the references to the 'authzxxxAuthoritative'
directives from the documentation
- Remove the 'Satisfy' directive from the documentation
- Remove 'Allow', 'Deny', 'Order' directives from the documentation
- Document '<RequireAll>', '<RequireOne>', 'Reject' directives
- Reimplement the APIs ap_auth_type(), ap_auth_name() as optional
functions and move the actual implementation into mod_authn_core
- Reimplement the API ap_some_auth_required() as an optional function
and move the actual implementation into mod_authz_core
Major Changes:
- Added the directives <RequireAll>, <RequireOne>, <RequireAlias>,
Reject
- Expanded the functionality of the directive 'Require' to handle all
authorization and access control
- Added the new authz providers 'env', 'ip', 'host', 'all' to handle
host-based access control
- Removed the directives 'Allow', 'Deny', 'Order', 'Satisfy',
'AuthzXXXAuthoritative'
- Removed the ap_require() API
- Moved the directives 'AuthType', 'AuthName' out of mod_core and into
mod_authn_core
- Moved the directive 'Require' out of mod_core and into
mod_authz_core
- Merged mod_authn_alias into mod_authn_core
- Renamed mod_authz_dbm authz providers from 'group' and 'file-group'
to 'dbm-group' and 'dbm-file-group'
Benefits:
- All authorization and access control is now handle through two
directives, 'Require' and 'Reject'
- Authorization has been expanded to allow for complex 'AND/OR' control
logic through the directives '<RequireAll>' and '<RequireOne>'
- Configuration is now much simpler and consistent across the board
- Other modules like mod_ssl and mod_proxy should be able to plug into
and take advantage of the same provider based authorization mechanism
by implementing their own providers
Issues:
- Backwards compatibility between 2.2 and 2.3 configurations will be
broken in the area of authorization and access control due to the fact
that the directives 'allow', 'deny', 'order' and 'satisfy' have been
removed. When moving from 2.2 to 2.3 these directives will have to be
changed to 'Require all granted', 'Require all denied' or some variation
of the authz host-based providers.
- Existing third party authorization modules will have to adapt to the
new structure.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@368027 13f79535-47bb-0310-9956-ffa450edef68
- Make the <Files> section safer by
adding Satisfy all (as is already present in 1.3)
- Remove some handler examples that almost nobody will
use (the config file is not the documentation)
- Remove some win32 specific stuff from the default
config, since win32 uses its own config file
- Remove the config section for the perchild mpm
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@349747 13f79535-47bb-0310-9956-ffa450edef68
or even just ::. Rather than confuse users by trying to explain this in
the configuration, simply remove the now-erroneous reference to 0.0.0.0.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@327892 13f79535-47bb-0310-9956-ffa450edef68
nouser) violates the purpose of that user. User nobody exists
specifically as a user that no process runs as and that owns no files
on disk. Same for nogroup.
The user and group daemon are the generic system services user and
group. Use those instead.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@220032 13f79535-47bb-0310-9956-ffa450edef68
custom error doc can't provide all the information
provided by the internal doc. Also delete the corresponding
.html.var file to avoid future confusion.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@178453 13f79535-47bb-0310-9956-ffa450edef68
Submitted for your consideration - does
AddHandler imap-file map
make sense anymore? or should the handler be imagemap-file?
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@160436 13f79535-47bb-0310-9956-ffa450edef68
* docs\conf\httpd-win.conf
* docs\conf\httpd-std.conf.in
Replace all occurences of *.c with *_module within
IfModule clauses, as pointed out by Paul Querna to
be possible nowadays.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@152951 13f79535-47bb-0310-9956-ffa450edef68
never implemented in 2.0 and never needed to be.
* docs/ssl/ssl-std.conf.in: Remove CompatEnvVars examples.
* modules/ssl/ssl_engine_config.c (ssl_cmd_SSLOptions): Don't allow
the CompatEnvVars argument.
* modules/ssl/ssl_private.h: Remove SSL_OPT_COMPATENVVARS macro.
git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@103829 13f79535-47bb-0310-9956-ffa450edef68