Grokbase
Topics Posts Groups | in
x
[ help ]

[Mason] MasonX::Request::WithApacheSession and FastCGI

View TopicPrint | Flat  Thread  Threaded
1) S. Kiehn Cannot seem to get this to work together (or with CGI). Here is a portion of my handler script: if...
| +1 vote (Anchor)
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Cannot seem to get this to work together (or with CGI). Here is a portion of my handler script:

    if ( !$h ) {
        $h = HTML::Mason::CGIHandler->new(

            data_dir => '/mason/data/dir',
            error_format => 'text',
            error_mode => 'fatal',
            allow_globals => ['$DB_SQLite'],
            request_class => 'MasonX::Request::WithApacheSession',
            session_cookie_name => 'SessionName',
            session_cookie_domain => '.example.com',
            session_class => 'Apache::Session::File',
            session_directory => '/mason/sessions/data/dir',
            session_lock_directory => '/mason/sessions/lock/dir', 
            session_use_cookie => 1,
            session_cookie_expires => '+20m'

        );
    }

The error I get in the error.log is:

error parsing headers: malformed header 'The 'header_object' parameter ("CGI :Fast=HASH(0x879b104)") to Apache::Session::Wrapper->new() did not pass the 'has a method to set headers' callback'

The perldoc for Apache::Session::Wrapper indicates that when outside of mod_perl "you must provide an object to which the cookie header can be added", but the perldoc for MasonX::R::WAS says "this module takes care of passing the 'header_object' and 'param_object' parameters to Apache::Session::Wrapper."

Am I missing something in my $h object?

I am using Ubuntu Dapper packages on Mepis, versions:

MasonX::Request::WithApacheSession  0.30
Apache::Session  1.80
Apache::Session::Wrapper  0.31

Any help would be appreciated.

Scott Kiehn






   
---------------------------------
All-new Yahoo! Mail - Fire up a more powerful email and get things done faster.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________
Mason-users mailing list
[email protected: Mason-...@lists.sourceforge.net]
https://lists.sourceforge.net/lists/listinfo/mason-users
2) S. Kiehn Researching a little more and re-reading my own post, I now see that the CGI::Fast object is being...
| +1 vote (Anchor)
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Researching a little more and re-reading my own post, I now see that the CGI::Fast object is being passed, it just does not have the headers_out() method needed by Apache::Session::Wrapper. My revised question would be, how do I incorporate a headers_out() method into CGI::Fast?

__________________________________________________
Do You Yahoo!?
Tired of spam?  Yahoo! Mail has the best spam protection around 
http://mail.yahoo.com

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________
Mason-users mailing list
[email protected: Mason-...@lists.sourceforge.net]
https://lists.sourceforge.net/lists/listinfo/mason-users
3) Hans Dieter Pearcey I believe this is a bug in MasonX::Request::WithApacheSession. The attached patch fixes it....
paperclip | +1 vote (Anchor)
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Sat, Aug 26, 2006 at 12:58:31PM -0700, S. Kiehn wrote:
> error parsing headers: malformed header 'The 'header_object' parameter
> ("CGI :Fast=HASH(0x879b104)") to Apache::Session::Wrapper->new() did not
> pass the 'has a method to set headers' callback'
>
> The perldoc for Apache::Session::Wrapper indicates that when outside of
> mod_perl "you must provide an object to which the cookie header can be
> added", but the perldoc for MasonX::R::WAS says "this module takes care of
> passing the 'header_object' and 'param_object' parameters to
>    Apache::Session::Wrapper."

I believe this is a bug in MasonX::Request::WithApacheSession.  The
attached patch fixes it.

Unfortunately, when I last asked Dave about this problem, he said
"someone else was supposed to maintain this and they disappeared", so I
don't know what state M::R::WAS is in. :(

hdp. -------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________
Mason-users mailing list
[email protected: Mason-...@lists.sourceforge.net]
https://lists.sourceforge.net/lists/listinfo/mason-users

Attachment: masonx-cgi-request.patch
4) S. Kiehn Thanks Hans for the response. I made the patch, now I get new errors: 'Can't call method "can" on...
| +1 vote (Anchor)
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
Thanks Hans for the response.  I made the patch, now I get new errors:

'Can't call method "can" on an undefined value at /usr/share/perl5/Apache/Session/Wrapper.pm line 650.'

I looked at the code block in question in Apache::Session::Wrapper and just for kicks I commented out the following lines:

645         my $header_object = $self->{header_object};
646         for my $meth (@HeaderMethods)
647         {
648             if ( $header_object->can($meth) )
649             {
650 #               if ( $header_object->$meth->can('add') )
651 #               {
652 # $header_object->$meth->add( 'Set-Cookie' => $cookie );
653 #               }
654 #               else
655 #               {
656                    $header_object->$meth( 'Set-Cookie' => $cookie );
657 #               }
658                last;
659            }
660        }

After doing this, no more errors and I had cookies with FastCGI and MasonX::R:MAS (it worked with mod_perl too). Since understanding the workings of perl modules is more than my current level of perl knowledge, I have no idea what implications those changes had on other things. However, could it be possible that a bug fix in one module turned up a problem in another?

Scott Kiehn






    
---------------------------------
Get your own web address for just $1.99/1st yr. We'll help. Yahoo! Small Business.

-------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________
Mason-users mailing list
[email protected: Mason-...@lists.sourceforge.net]
https://lists.sourceforge.net/lists/listinfo/mason-users
5) Hans Dieter Pearcey Bug in ASW. It's fixed by the attached patch. don't remember any of the context anymore.) hdp....
paperclip | +1 vote (Anchor)
[ Profile | Reply to group ] [ Flat  Thread  Threaded ]
On Wed, Aug 30, 2006 at 10:15:01PM -0700, S. Kiehn wrote:
> Thanks Hans for the response. I made the patch, now I get new errors:
>
> 'Can't call method "can" on an undefined value at
> /usr/share/perl5/Apache/Session/Wrapper.pm line 650.'

Bug in ASW.  It's fixed by the attached patch.

(I put the patch together a few months ago; there may be a better way but I
don't remember any of the context anymore.)

hdp. -------------------------------------------------------------------------
Using Tomcat but need to do more? Need to support web services, security?
Get stuff done quickly with pre-integrated technology to make your job easier
Download IBM WebSphere Application Server v.1.0.1 based on Apache Geronimo
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=120709&bid=263057&dat=121642 _______________________________________________
Mason-users mailing list
[email protected: Mason-...@lists.sourceforge.net]
https://lists.sourceforge.net/lists/listinfo/mason-users

Attachment: wrapper-can.patch
spacer
View TopicPrint | Flat  Thread  Threaded
Home > Groups > Mason > [Mason] MasonX::Request::WithApacheSession and FastCGI (5 posts)