Skip to content
Permalink
Browse files

When using encrypted logins, do not add the webServerPort from the co…

…nfig file. Fixes bug #12269.
  • Loading branch information...
perlDreamer committed Oct 6, 2011
1 parent e5ef40f commit 5314530a3c07d2d864f533cd0cba8c147971b558
Showing with 21 additions and 8 deletions.
  1. +1 −0 docs/changelog/7.x.x.txt
  2. +8 −5 lib/WebGUI/Auth.pm
  3. +5 −2 lib/WebGUI/Macro/L_loginBox.pm
  4. +7 −1 t/Macro/L_loginBox.t
@@ -2,6 +2,7 @@
- fixed #12256: Calendar Search doesn't show admin controls
- fixed #12268: Point of sale form missing from cart screen.
- fixed #12201: AssetReport - no selects.
- fixed #12269: Login / Loginbox with encryptlogin

7.10.23
- fixed #12225: Stock asset, multiple instances on a page
@@ -590,8 +590,10 @@ sub displayLogin {
$vars->{title} = $i18n->get(66);
my $action;
if ($self->session->setting->get("encryptLogin")) {
$action = $self->session->url->page(undef,1);
$action =~ s/http:/https:/;
my $uri = URI->new($session->url->page(undef,1));
$uri->scheme('https');
$uri->host_port($uri->host);
$action = $uri->as_string;
}
$vars->{'login.form.header'} = WebGUI::Form::formHeader($self->session,{action=>$action});
$vars->{'login.form.hidden'} = WebGUI::Form::hidden($self->session,{"name"=>"op","value"=>"auth"});
@@ -923,9 +925,10 @@ sub login {
$self->session->scratch->delete("redirectAfterLogin");
}
elsif ($self->session->setting->get('encryptLogin')) {
my $currentUrl = $self->session->url->page(undef,1);
$currentUrl =~ s/^https:/http:/;
$self->session->http->setRedirect($currentUrl);
my $currentUrl = URI->new($self->session->url->page(undef,1));
$currentUrl->scheme('http');
$currentUrl->port($self->session->config->get('webServerPort') || 80);
$self->session->http->setRedirect($currentUrl->canonical->as-string);
}

# Get open version tag. This is needed if we want
@@ -14,6 +14,7 @@ use strict;
use WebGUI::Form;
use WebGUI::International;
use WebGUI::Asset::Template;
use URI;

=head1 NAME
@@ -96,8 +97,10 @@ sub process {

my $action;
if ($session->setting->get("encryptLogin")) {
$action = $session->url->page(undef,1);
$action =~ s/http:/https:/;
my $uri = URI->new($session->url->page(undef,1));
$uri->scheme('https');
$uri->host_port($uri->host);
$action = $uri->canonical->as_string;
}
$var{'form.header'} = WebGUI::Form::formHeader($session,{action=>$action})
.WebGUI::Form::hidden($session,{
@@ -38,7 +38,7 @@ $session->{_env}->{_env} = \%newEnvHash;

my $i18n = WebGUI::International->new($session,'Macro_L_loginBox');

plan tests => 30;
plan tests => 31;

my $output = WebGUI::Macro::L_loginBox::process($session,'','',$template->getId);
my %vars = simpleTextParser($output);
@@ -155,6 +155,12 @@ $output = WebGUI::Macro::L_loginBox::process($session,'','',$template->getId);
%vars = simpleTextParser($output);
like($vars{'form.header'}, qr{https://}, 'form.header action set to use SSL by encryptLogin');

WebGUI::Test->originalConfig('webServerPort');
$session->config->set('webServerPort', 8081);
$output = WebGUI::Macro::L_loginBox::process($session,'','',$template->getId);
%vars = simpleTextParser($output);
unlike($vars{'form.header'}, qr{:8081}, '... when setting, remove the port');

##Finally, a test that the default Template exists

$output = WebGUI::Macro::L_loginBox::process($session,'','','');

0 comments on commit 5314530

Please sign in to comment.
You can’t perform that action at this time.