You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Nate Smith <na...@thebackrow.net> on 2001/09/06 16:21:24 UTC

EmbperlObject problem

Hi, I recently implemented a site using embperl, but like a lot of people on
the list am not quite satisfied with the current state of the Session
implementation in the stable tree.  So, while I was starting to write
access control/authentication/authorization modules for my site embperlObject
suddenly started giving me stuff like

apache/error.log -- [Thu Sep  6 10:06:08 2001] [error] EmbperlObject searched ';/home/www/newsite;/home/www'

using the following configuration:

<Directory "/home/www/newsite">
        PerlAccessHandler Apache::MyAccessControl
        PerlSetVar Allow yes
        <FilesMatch ".*\.html$">
                SetHandler perl-script
                PerlHandler HTML::EmbperlObject
                PerlSetEnv EMBPERL_OBJECT_BASE template.epl
                Options ExecCGI
        </FilesMatch>
        <FilesMatch ".*\.epl$">
                Order allow,deny
                Allow From all
        </FilesMatch>
</Directory>

When I remove the first two lines regarding my access module it works,
of course, as that was how it was before adding the module.  If I change
the value of Allow to 'no', it also functions as expected, returning
'FORBIDDEN'.  When Allow is set to 'yes' is when the error message above
appears.  Below is the skeleton access control module I used:

package Apache::MyAccessControl.pm
# File: Apache/GateKeeper.pm

use strict;
use Apache::Constants qw(:common);

sub handler {
        my $r = shift;
        my $allow = $r->dir_config("Allow");
        return DECLINED unless defined $allow;
        return OK if lc $allow eq 'yes';

        if (lc $allow eq 'no') {
                $r->log_reason("Access Forbidden unless allow is yes", $r->file>
                return FORBIDDEN;
        }

        $r->log_error($r->uri, ": Invalid value for Allow ($allow)");
        return SERVER_ERROR;

}

1;


Any ideas?

Nate Smith


	"Don't buy what you can't pay for. But when it comes to
	software, don't pay for what you can't buy."




---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Re: EmbperlObject problem

Posted by Gerald Richter <ri...@ecos.de>.

>
> I fixed teh problem apparantly by putting the two lines in question within
> the FilesMatch section.  Any other insights, comments are appreciated.
>

This seems to be a known problem with mod_perl's PerlSetEnv. Should be fixed
in the CVS version of mod_perl (I am not sure if it's fix in mod_perl 1.26).
Another possibility is to use SetEnv instead of PerlSetEnv for Embperl's
setup. (need Apache > 1.3.9)

Gerald



-------------------------------------------------------------
Gerald Richter    ecos electronic communication services gmbh
Internetconnect * Webserver/-design/-datenbanken * Consulting

Post:       Tulpenstrasse 5         D-55276 Dienheim b. Mainz
E-Mail:     richter@ecos.de         Voice:    +49 6133 925131
WWW:        http://www.ecos.de      Fax:      +49 6133 925152
-------------------------------------------------------------


> On Thu, 6 Sep 2001, Nate Smith wrote:
>
> ==>
> ==>Hi, I recently implemented a site using embperl, but like a lot of
people on
> ==>the list am not quite satisfied with the current state of the Session
> ==>implementation in the stable tree.  So, while I was starting to write
> ==>access control/authentication/authorization modules for my site
embperlObject
> ==>suddenly started giving me stuff like
> ==>
> ==>apache/error.log -- [Thu Sep  6 10:06:08 2001] [error] EmbperlObject
searched ';/home/www/newsite;/home/www'
> ==>
> ==>using the following configuration:
> ==>
> ==><Directory "/home/www/newsite">
> ==>        PerlAccessHandler Apache::MyAccessControl
> ==>        PerlSetVar Allow yes
> ==>        <FilesMatch ".*\.html$">
> ==>                SetHandler perl-script
> ==>                PerlHandler HTML::EmbperlObject
> ==>                PerlSetEnv EMBPERL_OBJECT_BASE template.epl
> ==>                Options ExecCGI
> ==>        </FilesMatch>
> ==>        <FilesMatch ".*\.epl$">
> ==>                Order allow,deny
> ==>                Allow From all
> ==>        </FilesMatch>
> ==></Directory>
> ==>
> ==>When I remove the first two lines regarding my access module it works,
> ==>of course, as that was how it was before adding the module.  If I
change
> ==>the value of Allow to 'no', it also functions as expected, returning
> ==>'FORBIDDEN'.  When Allow is set to 'yes' is when the error message
above
> ==>appears.  Below is the skeleton access control module I used:
> ==>
> ==>package Apache::MyAccessControl.pm
> ==># File: Apache/GateKeeper.pm
> ==>
> ==>use strict;
> ==>use Apache::Constants qw(:common);
> ==>
> ==>sub handler {
> ==>        my $r = shift;
> ==>        my $allow = $r->dir_config("Allow");
> ==>        return DECLINED unless defined $allow;
> ==>        return OK if lc $allow eq 'yes';
> ==>
> ==>        if (lc $allow eq 'no') {
> ==>                $r->log_reason("Access Forbidden unless allow is yes",
$r->file>
> ==>                return FORBIDDEN;
> ==>        }
> ==>
> ==>        $r->log_error($r->uri, ": Invalid value for Allow ($allow)");
> ==>        return SERVER_ERROR;
> ==>
> ==>}
> ==>
> ==>1;
> ==>
> ==>
> ==>Any ideas?
> ==>
> ==>Nate Smith
> ==>
> ==>
> ==> "Don't buy what you can't pay for. But when it comes to
> ==> software, don't pay for what you can't buy."
> ==>
> ==>
> ==>
> ==>
> ==>---------------------------------------------------------------------
> ==>To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> ==>For additional commands, e-mail: embperl-help@perl.apache.org
> ==>
>
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> For additional commands, e-mail: embperl-help@perl.apache.org
>
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org


Re: EmbperlObject problem

Posted by Nate Smith <na...@thebackrow.net>.
I fixed teh problem apparantly by putting the two lines in question within
the FilesMatch section.  Any other insights, comments are appreciated.

On Thu, 6 Sep 2001, Nate Smith wrote:

==>
==>Hi, I recently implemented a site using embperl, but like a lot of people on
==>the list am not quite satisfied with the current state of the Session
==>implementation in the stable tree.  So, while I was starting to write
==>access control/authentication/authorization modules for my site embperlObject
==>suddenly started giving me stuff like
==>
==>apache/error.log -- [Thu Sep  6 10:06:08 2001] [error] EmbperlObject searched ';/home/www/newsite;/home/www'
==>
==>using the following configuration:
==>
==><Directory "/home/www/newsite">
==>        PerlAccessHandler Apache::MyAccessControl
==>        PerlSetVar Allow yes
==>        <FilesMatch ".*\.html$">
==>                SetHandler perl-script
==>                PerlHandler HTML::EmbperlObject
==>                PerlSetEnv EMBPERL_OBJECT_BASE template.epl
==>                Options ExecCGI
==>        </FilesMatch>
==>        <FilesMatch ".*\.epl$">
==>                Order allow,deny
==>                Allow From all
==>        </FilesMatch>
==></Directory>
==>
==>When I remove the first two lines regarding my access module it works,
==>of course, as that was how it was before adding the module.  If I change
==>the value of Allow to 'no', it also functions as expected, returning
==>'FORBIDDEN'.  When Allow is set to 'yes' is when the error message above
==>appears.  Below is the skeleton access control module I used:
==>
==>package Apache::MyAccessControl.pm
==># File: Apache/GateKeeper.pm
==>
==>use strict;
==>use Apache::Constants qw(:common);
==>
==>sub handler {
==>        my $r = shift;
==>        my $allow = $r->dir_config("Allow");
==>        return DECLINED unless defined $allow;
==>        return OK if lc $allow eq 'yes';
==>
==>        if (lc $allow eq 'no') {
==>                $r->log_reason("Access Forbidden unless allow is yes", $r->file>
==>                return FORBIDDEN;
==>        }
==>
==>        $r->log_error($r->uri, ": Invalid value for Allow ($allow)");
==>        return SERVER_ERROR;
==>
==>}
==>
==>1;
==>
==>
==>Any ideas?
==>
==>Nate Smith
==>
==>
==>	"Don't buy what you can't pay for. But when it comes to
==>	software, don't pay for what you can't buy."
==>
==>
==>
==>
==>---------------------------------------------------------------------
==>To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
==>For additional commands, e-mail: embperl-help@perl.apache.org
==>


---------------------------------------------------------------------
To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
For additional commands, e-mail: embperl-help@perl.apache.org