"John D. Leonard II" wrote:
> 
> Joshua (and others...):
> 
> This is difficult bug to describe, but appears to relate to the
> initialization of the $Request->ServerVariables object.
> 
> I have the following OnStart event defined in my global.asa:
> 
> sub Script_OnStart{
>   foreach my $key (qw( REMOTE_USER REMOTE_GROUPS REDIRECT_REMOTE_GROUPS) ){
>     $Session->{$key} = $Request->ServerVariables($key) if
> ($Request->ServerVariables($key) ne "");
>   }

>From your description of the problem, I would probably write your
code like this:


 sub Script_OnStart{
   foreach my $key (qw( REMOTE_USER REMOTE_GROUPS REDIRECT_REMOTE_GROUPS) ){
     $Session->{$key} = $Request->ServerVariables($key);
   }
 }

because the REMOTE_* keys should always be set outside of Apache::ASP.
You said you just wanted to copy them into $Session for reuse in other
parts of your application.

Because your code would use old session info even if there was no
REMOTE_* data, what you see as a core system bug might just be 
a programming one in this case.

I would not necessarily use $Session for this however, but create
an alias to these vars like:

  use vars qw($Env);
  sub Script_OnStart {
     $Env = $Request->ServerVariables;
  }

or I might create a special $Auth object/hash for this data for 
easy referencing later.  Use $Session only when you need data 
to persist in a transparent way from one request to another.
If the data is already in auth headers being sent by the client,
then you can init this per request, and not take the performance
hit of using $Session to store this data ( memory vs. disk storage )

Let me know if you continue to think there is a real bug here
and we'll get to the bottom of it.

--Josh

_________________________________________________________________
Joshua Chamas                           Chamas Enterprises Inc.
NodeWorks Founder                       Huntington Beach, CA  USA 
http://www.nodeworks.com                1-714-625-4051

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to