You are viewing a plain text version of this content. The canonical link for it is here.
Posted to embperl@perl.apache.org by Eric Knauel <kn...@informatik.uni-tuebingen.de> on 2000/08/02 15:24:52 UTC
Problems with session management
Hi,
I have some trouble getting session management to work. I'm using
Apache Session 1.03, Embperl 1.3b4 with mod_perl on Apache 1.3.12,
here what I put in the httpd.conf:
SetEnv EMBPERL_DEBUG 2375713
SetEnv EMBPERL_VIRTLOG /embperl/log
PerlSetEnv EMBPERL_COOKIE_DOMAIN "www.macnews.de"
PerlSetEnv EMBPERL_COOKIE_NAME "SessionID"
PerlSetEnv EMBPERL_COOKIE_PATH "/umfrage/dialog"
PerlSetEnv EMBPERL_SESSION_CLASSES "DBIStore SysVSemaphoreLocker"
PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:session UserName=apache Password=extremlysecret"
PerlModule Apache::Session
PerlModule HTML::Embperl
<Location /dialog/umfrage>
SetHandler perl-script
PerlHandler HTML::Embperl
Options ExecCGI
</Location>
However I never get a cookie from Embperl! I also tried with FileStore
instead of DBIStore. Maybe I didn't understand the documentation
right, but normally this small script should work:
<html>
<head>
<title>Test</title>
</head>
<body>
Hmm:<br>
[$ if defined($udat{sometime}) $]
<b>First started: [+ $udat{sometime} +]</b><br>
[$ else $]
[- $udat{sometime} = localtime; -]
<b>Setting time to:</b> [+ $udat{sometime} +]
[$ endif $]
</body>
</html>
Everytime I reload this page it prints the server time... What am I
doing wrong? ;-)
Please let me know if you need more information!
Ciao,
Eric
Re: Problems with session management
Posted by ___cliff rayman___ <cl...@genwax.com>.
Eric Knauel wrote:
> Hi,
>
> I have some trouble getting session management to work. I'm using
> Apache Session 1.03, Embperl 1.3b4 with mod_perl on Apache 1.3.12,
> here what I put in the httpd.conf:
>
> SetEnv EMBPERL_DEBUG 2375713
> SetEnv EMBPERL_VIRTLOG /embperl/log
> PerlSetEnv EMBPERL_COOKIE_DOMAIN "www.macnews.de"
this should be:
PerlSetEnv EMBPERL_COOKIE_DOMAIN .macnews.de
you listed a host, not a domain. also - doesn't need the quotes.
>
> PerlSetEnv EMBPERL_COOKIE_NAME "SessionID"
> PerlSetEnv EMBPERL_COOKIE_PATH "/umfrage/dialog"
> PerlSetEnv EMBPERL_SESSION_CLASSES "DBIStore SysVSemaphoreLocker"
> PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:session UserName=apache Password=extremlysecret"
> PerlModule Apache::Session
> PerlModule HTML::Embperl
> <Location /dialog/umfrage>
> SetHandler perl-script
> PerlHandler HTML::Embperl
> Options ExecCGI
> </Location>
>
> However I never get a cookie from Embperl! I also tried with FileStore
> instead of DBIStore. Maybe I didn't understand the documentation
> right, but normally this small script should work:
>
> <html>
> <head>
> <title>Test</title>
> </head>
> <body>
> Hmm:<br>
> [$ if defined($udat{sometime}) $]
> <b>First started: [+ $udat{sometime} +]</b><br>
> [$ else $]
> [- $udat{sometime} = localtime; -]
> <b>Setting time to:</b> [+ $udat{sometime} +]
> [$ endif $]
> </body>
> </html>
>
> Everytime I reload this page it prints the server time... What am I
> doing wrong? ;-)
> Please let me know if you need more information!
>
> Ciao,
> Eric
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> For additional commands, e-mail: embperl-help@perl.apache.org
--
___cliff rayman___cliff@genwax.com___http://www.genwax.com/
Re: Problems with session management
Posted by Gerald Richter <ri...@ecos.de>.
>
> Yes, but only when I restart apache using apachectl stop/start not
> with graceful, is this normal?
>
Yes
Gerald
Re: Problems with session management
Posted by Eric Knauel <kn...@informatik.uni-tuebingen.de>.
Hi Gerald,
"Gerald Richter" <ri...@ecos.de> writes:
> When Apache starts, you should see a message "Embperl session management
> enabled", did you?
Yes, but only when I restart apache using apachectl stop/start not
with graceful, is this normal?
Ciao,
Eric
--
E-Mail: knauel@informatik.uni-tuebingen.de eric@macnews.de
http://www-pu.informatik.uni-tuebingen.de/users/knauel
Re: Problems with session management
Posted by Gerald Richter <ri...@ecos.de>.
Hi,
>
> I have some trouble getting session management to work. I'm using
> Apache Session 1.03, Embperl 1.3b4 with mod_perl on Apache 1.3.12,
> here what I put in the httpd.conf:
>
> SetEnv EMBPERL_DEBUG 2375713
> SetEnv EMBPERL_VIRTLOG /embperl/log
> PerlSetEnv EMBPERL_COOKIE_DOMAIN "www.macnews.de"
> PerlSetEnv EMBPERL_COOKIE_NAME "SessionID"
> PerlSetEnv EMBPERL_COOKIE_PATH "/umfrage/dialog"
For testing I would try to remove the above three lines (also I don't know
if the changes anything, but makes things easier for the start)
> PerlSetEnv EMBPERL_SESSION_CLASSES "DBIStore SysVSemaphoreLocker"
> PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:session
UserName=apache Password=extremlysecret"
> PerlModule Apache::Session
> PerlModule HTML::Embperl
> <Location /dialog/umfrage>
> SetHandler perl-script
> PerlHandler HTML::Embperl
> Options ExecCGI
> </Location>
>
When Apache starts, you should see a message "Embperl session management
enabled", did you?
> However I never get a cookie from Embperl! I also tried with FileStore
> instead of DBIStore. Maybe I didn't understand the documentation
> right, but normally this small script should work:
>
Yes, the script is ok
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 925151
WWW: http://www.ecos.de Fax: +49 6133 925152
-------------------------------------------------------------
Re: Problems with session management
Posted by Eric Knauel <kn...@informatik.uni-tuebingen.de>.
Hi Jon,
"Jon Brisbin" <br...@ipa.net> writes:
> Here's what I did: I switched to using file-based session storage in a tmp
> directory under /cgi-bin, which does not allow a malicious user, even if
> they knew a session id, to view any of the session information. Here's what
> I put in my embpcgi.pl file (you can do the equivalent in your httpd.conf
> file):
It works now! I switched from mod_perl to execution via cgi-bin and
put your SESSION_CLASSES / ARGS in my httpd.conf with SetEnv. It's a
bit strange that the same seem do not seem to work when using mod_perl...
> You might want to try the DBIStore with the NullLocker and see if that helps
> any...
> Did you set up a table in your mysql db called "sessions" that has is like
> "id char(32) not null primary key, a_session text"??
Yes, but it didn't help. :-( Somehow I can't get DBIStore to work, but
this is not a problem since FileStore is fast enough at the moment. ;)
Thanks for your help!
Ciao,
Eric
Re: Problems with session management
Posted by Jon Brisbin <br...@ipa.net>.
I *just* tackled this problem myself! :-) I couldn't use the DBIStore
because of a bug some think is in PERL...it happens when the Session Manager
tries to connect to the database and throws a "die" because it can't for
whatever reason...the session never gets initialized...
Here's what I did: I switched to using file-based session storage in a tmp
directory under /cgi-bin, which does not allow a malicious user, even if
they knew a session id, to view any of the session information. Here's what
I put in my embpcgi.pl file (you can do the equivalent in your httpd.conf
file):
BEGIN {
# $ENV{EMBPERL_SESSION_CLASSES} = "DBIStore NullLocker";
# $ENV{EMBPERL_SESSION_ARGS} = "DataSource=DBI:mysql:dbname UserName=user
Password=pass";
$ENV{EMBPERL_SESSION_CLASSES} = "FileStore NullLocker";
$ENV{EMBPERL_SESSION_ARGS} =
"Directory=/usr/www/jbrisbin/httpd/cgi-bin/tmp";
};
I tried the DBIStore stuff with the NullLocker, because I was getting errors
when it was using SysV semaphore...so I switched it and this works
perfectly...all you'd have to do would be to put the equivalent PerSetEnv
(or SetEnv) on the SESSION_CLASSES and SESSION_ARGS to your liking...
You might want to try the DBIStore with the NullLocker and see if that helps
any...
Did you set up a table in your mysql db called "sessions" that has is like
"id char(32) not null primary key, a_session text"??
Jon Brisbin
www.jbrisbin.net
mail@jbrisbin.net
----- Original Message -----
From: Eric Knauel <kn...@informatik.uni-tuebingen.de>
To: Embeded PERL ML <em...@perl.apache.org>
Sent: Wednesday, August 02, 2000 8:24 AM
Subject: Problems with session management
>
> Hi,
>
> I have some trouble getting session management to work. I'm using
> Apache Session 1.03, Embperl 1.3b4 with mod_perl on Apache 1.3.12,
> here what I put in the httpd.conf:
>
> SetEnv EMBPERL_DEBUG 2375713
> SetEnv EMBPERL_VIRTLOG /embperl/log
> PerlSetEnv EMBPERL_COOKIE_DOMAIN "www.macnews.de"
> PerlSetEnv EMBPERL_COOKIE_NAME "SessionID"
> PerlSetEnv EMBPERL_COOKIE_PATH "/umfrage/dialog"
> PerlSetEnv EMBPERL_SESSION_CLASSES "DBIStore SysVSemaphoreLocker"
> PerlSetEnv EMBPERL_SESSION_ARGS "DataSource=dbi:mysql:session
UserName=apache Password=extremlysecret"
> PerlModule Apache::Session
> PerlModule HTML::Embperl
> <Location /dialog/umfrage>
> SetHandler perl-script
> PerlHandler HTML::Embperl
> Options ExecCGI
> </Location>
>
> However I never get a cookie from Embperl! I also tried with FileStore
> instead of DBIStore. Maybe I didn't understand the documentation
> right, but normally this small script should work:
>
> <html>
> <head>
> <title>Test</title>
> </head>
> <body>
> Hmm:<br>
> [$ if defined($udat{sometime}) $]
> <b>First started: [+ $udat{sometime} +]</b><br>
> [$ else $]
> [- $udat{sometime} = localtime; -]
> <b>Setting time to:</b> [+ $udat{sometime} +]
> [$ endif $]
> </body>
> </html>
>
> Everytime I reload this page it prints the server time... What am I
> doing wrong? ;-)
> Please let me know if you need more information!
>
> Ciao,
> Eric
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: embperl-unsubscribe@perl.apache.org
> For additional commands, e-mail: embperl-help@perl.apache.org
>