Skip to content

Commit

Permalink
When using encrypted logins, do not add the webServerPort from the co…
Browse files Browse the repository at this point in the history
…nfig file. Fixes bug #12269.
  • Loading branch information
perlDreamer committed Oct 6, 2011
1 parent e5ef40f commit 5314530
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 8 deletions.
1 change: 1 addition & 0 deletions docs/changelog/7.x.x.txt
Expand Up @@ -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
Expand Down
13 changes: 8 additions & 5 deletions lib/WebGUI/Auth.pm
Expand Up @@ -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"});
Expand Down Expand Up @@ -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
Expand Down
7 changes: 5 additions & 2 deletions lib/WebGUI/Macro/L_loginBox.pm
Expand Up @@ -14,6 +14,7 @@ use strict;
use WebGUI::Form;
use WebGUI::International;
use WebGUI::Asset::Template;
use URI;

=head1 NAME
Expand Down Expand Up @@ -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,{
Expand Down
8 changes: 7 additions & 1 deletion t/Macro/L_loginBox.t
Expand Up @@ -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);
Expand Down Expand Up @@ -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,'','','');
Expand Down

0 comments on commit 5314530

Please sign in to comment.