When using encrypted logins, do not add the webServerPort from the config file. Fixes bug #12269.
This commit is contained in:
parent
e5ef40f0a4
commit
5314530a3c
4 changed files with 21 additions and 8 deletions
|
|
@ -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,'','','');
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue