From: Sven Schöling Date: Fri, 14 Jul 2017 15:25:22 +0000 (+0200) Subject: HTTPS: Zustand korrekt erkennen, und im Workflow verwenden X-Git-Tag: release-3.5.4~1021 X-Git-Url: http://wagnertech.de/git?a=commitdiff_plain;h=8e51379e94d291d21add91bdbfbfe925433ea6c0;p=kivitendo-erp.git HTTPS: Zustand korrekt erkennen, und im Workflow verwenden Behebt Probleme, wenn der Server die HTTPS Environmentvariable auf 'off' setzt. --- diff --git a/SL/Form.pm b/SL/Form.pm index ea724b33e..1610704c8 100644 --- a/SL/Form.pm +++ b/SL/Form.pm @@ -376,7 +376,7 @@ sub _get_request_uri { return URI->new($ENV{HTTP_REFERER})->canonical() if $ENV{HTTP_X_FORWARDED_FOR}; return URI->new if !$ENV{REQUEST_URI}; # for testing - my $scheme = $ENV{HTTPS} && (lc $ENV{HTTPS} eq 'on') ? 'https' : 'http'; + my $scheme = $::request->is_https ? 'https' : 'http'; my $port = $ENV{SERVER_PORT}; $port = undef if (($scheme eq 'http' ) && ($port == 80)) || (($scheme eq 'https') && ($port == 443)); @@ -426,7 +426,7 @@ sub create_http_response { $session_cookie = $cgi->cookie('-name' => $main::auth->get_session_cookie_name(), '-value' => $session_cookie_value, '-path' => $uri->path, - '-secure' => $ENV{HTTPS}); + '-secure' => $::request->is_https); } } diff --git a/SL/Request.pm b/SL/Request.pm index 8d62f17d0..00744ac0d 100644 --- a/SL/Request.pm +++ b/SL/Request.pm @@ -42,6 +42,10 @@ sub init_type { return 'html'; } +sub is_https { + $ENV{HTTPS} && 'on' eq lc $ENV{HTTPS}; +} + sub cache { my ($self, $topic, $default) = @_;