- Added an option to override the session cookie name.

This commit is contained in:
JT Smith 2006-08-04 15:16:18 +00:00
parent da7dea01f5
commit 2ea58485c9
11 changed files with 40 additions and 28 deletions

View file

@ -137,19 +137,8 @@ sub addJob {
return 0 unless ($params->{enabled});
my $id = $params->{config}."-".$params->{taskId};
$self->debug("Adding schedule ".$params->{taskId}." to the queue.");
$self->{_jobs}{$id} = {
taskId=>$params->{taskId},
config=>$params->{config},
gateway=>$params->{gateway},
sitename=>$params->{sitename},
schedule=>join(" ", $params->{minuteOfHour}, $params->{hourOfDay}, $params->{dayOfMonth}, $params->{monthOfYear}, $params->{dayOfWeek}),
runOnce=>$params->{runOnce},
workflowId=>$params->{workflowId},
className=>$params->{className},
methodName=>$params->{methodName},
parameters=>$params->{parameters},
priority=>$params->{priority}
};
$params->{schedule} = join(" ", $params->{minuteOfHour}, $params->{hourOfDay}, $params->{dayOfMonth}, $params->{monthOfYear}, $params->{dayOfWeek});
$self->{_jobs}{$id} = $params;
}
#-------------------------------------------------------------------
@ -400,7 +389,7 @@ sub runJob {
my $url = "http://".$job->{sitename}.':'.$self->config->get("webguiPort").$job->{gateway};
my $request = POST $url, [op=>"runCronJob", taskId=>$job->{taskId}];
my $cookie = $self->{_cookies}{$job->{sitename}};
$request->header("Cookie","wgSession=".$cookie) if (defined $cookie);
$request->header("Cookie",$job->{cookieName}."=".$cookie) if (defined $cookie);
$request->header("User-Agent","Spectre");
$request->header("X-jobId",$id);
$self->debug("Posting job ".$id." to $url.");
@ -431,7 +420,8 @@ sub runJobResponse {
if ($response->header("Set-Cookie") ne "") {
$self->debug("Storing cookie for $id for later use.");
my $cookie = $response->header("Set-Cookie");
$cookie =~ s/wgSession=([a-zA-Z0-9\_\-]{22}).*/$1/;
my $pattern = $job->{cookieName}."=([a-zA-Z0-9\_\-]{22}).*";
$cookie =~ s/$pattern/$1/;
$self->{_cookies}{$job->{sitename}} = $cookie;
}
my $state = $response->content;

View file

@ -84,13 +84,8 @@ The priority (1,2, or 3) that this instance should be run at.
sub addInstance {
my ($self, $params) = @_[OBJECT, ARG0];
$self->debug("Adding workflow instance ".$params->{instanceId}." from ".$params->{sitename}." to queue at priority ".$params->{priority}.".");
$self->{_instances}{$params->{instanceId}} = {
sitename=>$params->{sitename},
instanceId=>$params->{instanceId},
gateway => $params->{gateway},
status=>"waiting",
priority=>$params->{priority}
};
$params->{status} = "waiting";
$self->{_instances}{$params->{instanceId}} = $params;
push(@{$self->{"_priority".$params->{priority}}}, $params->{instanceId});
}
@ -370,7 +365,7 @@ sub runWorker {
my $url = "http://".$instance->{sitename}.':'.$self->config->get("webguiPort").$instance->{gateway};
my $request = POST $url, [op=>"runWorkflow", instanceId=>$instance->{instanceId}];
my $cookie = $self->{_cookies}{$instance->{sitename}};
$request->header("Cookie","wgSession=".$cookie) if (defined $cookie);
$request->header("Cookie",$instance->{cookieName}."=".$cookie) if (defined $cookie);
$request->header("X-instanceId",$instance->{instanceId});
$request->header("User-Agent","Spectre");
$self->debug("Posting workflow instance ".$instance->{instanceId}." to $url.");
@ -418,7 +413,8 @@ sub workerResponse {
if ($response->header("Set-Cookie") ne "") {
$self->debug("Storing cookie for $instanceId for later use.");
my $cookie = $response->header("Set-Cookie");
$cookie =~ s/wgSession=([a-zA-Z0-9\_\-]{22}).*/$1/;
my $pattern = $self->{_instances}{$instanceId}{cookieName}."=([a-zA-Z0-9\_\-]{22}).*";
$cookie =~ s/$pattern/$1/;
$self->{_cookies}{$self->{_instances}{$instanceId}{sitename}} = $cookie;
}
my $state = $response->content;

View file

@ -112,7 +112,7 @@ sub contentHandler {
} else {
$output = page($session);
}
$session->http->setCookie("wgSession",$session->var->{_var}{sessionId}) unless $session->var->{_var}{sessionId} eq $session->http->getCookies->{"wgSession"};
$session->http->setCookie($session->config->getCookieName,$session->var->{_var}{sessionId}) unless $session->var->{_var}{sessionId} eq $session->http->getCookies->{$session->config->getCookieName};
my $filename = $session->http->getStreamedFile();
if ((defined $filename) && ($session->config->get("enableStreamingUploads") eq "1")) {
my $ct = guess_media_type($filename);

View file

@ -196,7 +196,8 @@ sub checkView {
}
$self->logView();
# must find a way to do this next line better
$self->session->http->setCookie("wgSession",$self->session->var->{_var}{sessionId}) unless $self->session->var->{_var}{sessionId} eq $self->session->http->getCookies->{"wgSession"};
my $cookieName = $self->session->config->getCookieName;
$self->session->http->setCookie($cookieName,$self->session->var->{_var}{sessionId}) unless $self->session->var->{_var}{sessionId} eq $self->session->http->getCookies->{$cookieName};
return undef;
}

View file

@ -224,6 +224,19 @@ sub get {
return $self->{_config}{$param};
}
#-------------------------------------------------------------------
=head2 getCookieName ( )
Returns the cookie name defined in the config file. Returns "wgSession" if one isn't defined.
=cut
sub getCookieName {
my $self = shift;
return $self->get("cookieName") || "wgSession";
}
#-------------------------------------------------------------------

View file

@ -368,7 +368,7 @@ sub open {
my $self = {_config=>$config, _server=>$server};
bless $self , $class;
$self->{_request} = $request if (defined $request);
my $sessionId = shift || $self->http->getCookies->{"wgSession"} || $self->id->generate;
my $sessionId = shift || $self->http->getCookies->{$config->getCookieName} || $self->id->generate;
$sessionId = $self->id->generate unless $self->id->valid($sessionId);
my $noFuss = shift;
$self->{_var} = WebGUI::Session::Var->new($self,$sessionId, $noFuss);

View file

@ -289,6 +289,7 @@ sub set {
$params{config} = $self->session->config->getFilename;
$params{sitename} = $self->session->config->get("sitename")->[0];
$params{gateway} = $self->session->config->get("gateway");
$params{cookieName} = $self->session->config->getCookieName;
$spectre->notify("cron/addJob", \%params);
}

View file

@ -380,7 +380,7 @@ sub set {
if ($properties->{notifySpectre}) {
my $spectre = WebGUI::Workflow::Spectre->new($self->session);
$spectre->notify("workflow/deleteInstance",$self->getId) unless ($properties->{newlyCreated});
$spectre->notify("workflow/addInstance", {gateway=>$self->session->config->get("gateway"), sitename=>$self->session->config->get("sitename")->[0], instanceId=>$self->getId, priority=>$self->{_data}{priority}});
$spectre->notify("workflow/addInstance", {cookieName=>$self->session->config->getCookieName, gateway=>$self->session->config->get("gateway"), sitename=>$self->session->config->get("sitename")->[0], instanceId=>$self->getId, priority=>$self->{_data}{priority}});
}
}