stas 2004/08/08 17:26:23
Modified: src/docs/2.0/api/Apache Access.pod Const.pod
Log:
Apache::Access is complete
Revision Changes Path
1.6 +205 -40 modperl-docs/src/docs/2.0/api/Apache/Access.pod
Index: Access.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/Apache/Access.pod,v
retrieving revision 1.5
retrieving revision 1.6
diff -u -u -r1.5 -r1.6
--- Access.pod 5 Aug 2004 08:36:50 -0000 1.5
+++ Access.pod 9 Aug 2004 00:26:23 -0000 1.6
@@ -10,8 +10,47 @@
=head1 Synopsis
use Apache::Access ();
+
+ # allow only GET method
+ $r->allow_methods(1, qw(GET));
+
+ # Apache Options value
+ $options = $r->allow_options();
+
+ # Apache AllowOverride value
+ $allow_override = $r->allow_overrides();
+
+ # auth name ("foo bar")
+ $auth_name = $r->auth_name();
+
+ # auth type
+ $auth_type = $r->auth_type();
+ $r->auth_type("Digest");
+
+ # Basic authentication process
+ my($rc, $passwd) = $r->get_basic_auth_pw();
+
+ # the login name of the remote user (RFC1413)
+ $remote_logname = $r->get_remote_logname();
+
+ # dynamically figure out which auth has failed
+ $r->note_auth_failure();
+
+ # note Basic auth failure
+ $r->note_basic_auth_failure();
+
+ # note Digest auth failure
+ $r->note_digest_auth_failure();
+
+ # Apache Request value(s)
+ $requires = $r->requires();
+
+ # Apache Satisfy value (as a number)
+ $satisfy = $r->satisfies();
+
+ # check whether some auth is configured
+ $need_auth = $r->some_auth_required();
-META: needs to be completed
@@ -20,10 +59,12 @@
=head1 Description
-C<Apache::Access> provides an additional Perl API for
-C<L<Apache::RequestRec|docs::2.0::api::Apache::RequestRec|/Description>>
-object. The API provided by this module deals with access,
-authentication and authorization phases.
+The API provided by this module deals with access, authentication and
+authorization phases.
+
+C<Apache::Access> extends
+C<L<Apache::RequestRec|docs::2.0::api::Apache::RequestRec|/Description>>.
+
@@ -242,6 +283,7 @@
+
=head2 C<get_basic_auth_pw>
Get the password from the request headers
@@ -288,12 +330,9 @@
=head2 C<get_remote_logname>
-META: Autogenerated - needs to be reviewed/completed
+Retrieve the login name of the remote user (RFC1413)
-Retrieve the login name of the remote user. Undef if it could not be
-determined
-
- $ret = $r->get_remote_logname();
+ $remote_logname = $r->get_remote_logname();
=over 4
@@ -302,25 +341,33 @@
The current request
-=item ret: C<$ret> (string)
+=item ret: C<$remote_logname> ( string )
-The user logged in to the client machine
+The username of the user logged in to the client machine, or an empty
+string if it could not be determined via RFC1413, which involves
+querying the client's identd or auth daemon.
=item since: 1.99_12
=back
+Do not confuse this method with
+C<L<$r-E<gt>user|docs::2.0::api::Apache::RequestRec/C_user_>>, which
+provides the username provided by the user during the server
+authentication.
-=head2 C<note_auth_failure>
-META: Autogenerated - needs to be reviewed/completed
+
+
+
+=head2 C<note_auth_failure>
Setup the output headers so that the client knows how to authenticate
-itself the next time, if an authentication request failed. This function
-works for both basic and digest authentication
+itself the next time, if an authentication request failed. This
+function works for both basic and digest authentication
$r->note_auth_failure();
@@ -337,17 +384,24 @@
=back
+This method requires C<AuthType> to be set to C<Basic> or
+C<Digest>. Depending on the setting it'll call either
+C<L<$r-E<gt>note_basic_auth_failure|/C_note_basic_auth_failure_>> or
+C<L<$r-E<gt>note_digest_auth_failure|/C_note_digest_auth_failure_>>.
+
+
-=head2 C<note_basic_auth_failure>
-META: Autogenerated - needs to be reviewed/completed
+
+
+=head2 C<note_basic_auth_failure>
Setup the output headers so that the client knows how to authenticate
-itself the next time, if an authentication request failed. This function
-works only for basic authentication
+itself the next time, if an authentication request failed. This
+function works only for basic authentication
$r->note_basic_auth_failure();
@@ -368,13 +422,15 @@
-=head2 C<note_digest_auth_failure>
-META: Autogenerated - needs to be reviewed/completed
+
+
+
+=head2 C<note_digest_auth_failure>
Setup the output headers so that the client knows how to authenticate
-itself the next time, if an authentication request failed. This function
-works only for digest authentication
+itself the next time, if an authentication request failed. This
+function works only for digest authentication.
$r->note_digest_auth_failure();
@@ -395,20 +451,126 @@
+
+
=head2 C<requires>
+Retrieve information about all of the requires directives for this request
+
+ $requires = $r->requires
+
+=over 4
+
+=item obj: C<$r>
+( C<L<Apache::RequestRec object|docs::2.0::api::Apache::RequestRec>> )
+The current request
+=item ret: C<$requires> ( ARRAY ref )
+Returns an array reference of hash references, containing information
+related to the C<require> directive.
+=item since: 1.99_12
-=head2 C<satisfies>
+=back
+
+This is normally used for access control.
+
+For example if the configuration had the following require directives:
+
+ Require user goo bar
+ Require group bar tar
+
+this method will return the following datastructure:
+
+ [
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'user goo bar'
+ },
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'group bar tar'
+ }
+ ];
+
+The I<requirement> field is what was passed to the C<Require>
+directive. The I<method_mask> field is a bitmask which can be
+modified by the C<Limit> directive, but normally it can be safely
+ignored as it's mostly used internally. For example if the
+configuration was:
+
+ Require user goo bar
+ Require group bar tar
+ <Limit POST>
+ Require valid-user
+ </Limit>
+
+and the request method was C<POST>, C<$r-E<gt>requires> will return:
+
+ [
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'user goo bar'
+ },
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'group bar tar'
+ }
+ {
+ 'method_mask' => 4,
+ 'requirement' => 'valid-user'
+ }
+ ];
+
+But if the request method was C<GET>, it will return only:
+
+ [
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'user goo bar'
+ },
+ {
+ 'method_mask' => -1,
+ 'requirement' => 'group bar tar'
+ }
+ ];
-META: Autogenerated - needs to be reviewed/completed
+As you can see Apache gives you the requirements relevant for the
+current request, so the I<method_mask> is irrelevant.
-How the requires lines must be met.
+It is also a good time to remind that in the general case, access
+control directives should not be placed within a E<lt>LimitE<gt>
+section. Refer to the Apache documentation for more information.
- $ret = $r->satisfies();
+Using the same configuration and assuming that the request was of type
+POST, the following code inside an Auth handler:
+
+ my %require =
+ map { my($k, $v) = split /\s+/, $_->{requirement}, 2; ($k, $v||'') }
+ @{ $r->requires };
+
+will populate C<%require> with the following pairs:
+
+ 'group' => 'bar tar',
+ 'user' => 'goo bar',
+ 'valid-user' => '',
+
+
+
+
+
+
+
+
+
+=head2 C<satisfies>
+
+How the requires lines must be met. What's the applicable value of the
+C<Satisfy> directive:
+
+ $satisfy = $r->satisfies();
=over 4
@@ -417,30 +579,33 @@
The current request
-=item ret: C<$ret> (integer)
+=item ret: C<$satisfy> ( integer )
-How the requirements must be met. One of:
+How the requirements must be met. One of the C<L<Apache::Const
+:satisfy constants|docs::2.0::api::Apache::Const/C__satisfy_>>:
- Apache::SATISFY_ANY -- any of the requirements must be met.
- Apache::SATISFY_ALL -- all of the requirements must be met.
- Apache::SATISFY_NOSPEC -- There are no applicable satisfy lines
+C<L<Apache::SATISFY_ANY|docs::2.0::api::Apache::Const/C_Apache::SATISFY_ANY_>>,
+C<L<Apache::SATISFY_ALL|docs::2.0::api::Apache::Const/C_Apache::SATISFY_ALL_>>
+and
+C<L<Apache::SATISFY_NOSPEC|docs::2.0::api::Apache::Const/C_Apache::SATISFY_NOSPEC_>>.
=item since: 1.99_12
=back
+See the documentation for the C<Satisfy> directive in the Apache
+documentation.
-=head2 C<some_auth_required>
-META: Autogenerated - needs to be reviewed/completed
+=head2 C<some_auth_required>
-Can be used within any handler to determine if any authentication
-is required for the current request
+Can be used within any handler to determine if any authentication is
+required for the current request:
- $ret = $r->some_auth_required();
+ $need_auth = $r->some_auth_required();
=over 4
@@ -449,9 +614,9 @@
The current request
-=item ret: C<$ret> (integer)
+=item ret: C<$need_auth> ( boolean )
-1 if authentication is required, 0 otherwise
+TRUE if authentication is required, FALSE otherwise
=item since: 1.99_12
1.16 +6 -2 modperl-docs/src/docs/2.0/api/Apache/Const.pod
Index: Const.pod
===================================================================
RCS file: /home/cvs/modperl-docs/src/docs/2.0/api/Apache/Const.pod,v
retrieving revision 1.15
retrieving revision 1.16
diff -u -u -r1.15 -r1.16
--- Const.pod 8 Aug 2004 18:26:20 -0000 1.15
+++ Const.pod 9 Aug 2004 00:26:23 -0000 1.16
@@ -2267,7 +2267,8 @@
use Apache::Const -compile => qw(:satisfy);
-The C<:satisfy> group is for XXX constants.
+The C<:satisfy> constants group is used in conjunction with
+C<L<$r-E<gt>satisfies|docs::2.0::api::Apache::Access/C_satisfies_>>.
@@ -2280,7 +2281,7 @@
=back
-
+All of the requirements must be met.
@@ -2292,6 +2293,7 @@
=back
+any of the requirements must be met.
@@ -2303,6 +2305,8 @@
=item since: 1.99_12
=back
+
+There are no applicable satisfy lines
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]