diff --git a/_example/etc/nginx-lua-headers.conf b/_example/etc/nginx-lua-headers.conf index 24b869c8b..713dc38b9 100644 --- a/_example/etc/nginx-lua-headers.conf +++ b/_example/etc/nginx-lua-headers.conf @@ -19,6 +19,7 @@ auth_request_set $headername10 $upstream_http_headername10; auth_request_set $headervalue10 $upstream_http_headervalue10; auth_request_set $lmcookie $upstream_http_cookie; + add_header Set-Cookie $lmcookie; access_by_lua ' i = 1 ngx.req.set_header("Cookie",ngx.var.lmcookie) diff --git a/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm b/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm index e9c0a5511..9db852e8c 100644 --- a/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm +++ b/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Main.pm @@ -27,10 +27,11 @@ sub set_header_in { sub unset_header_in { my ( $class, $req, $header ) = @_; - $req->{respHeaders} = [ grep { $_ ne $header } @{ $req->{respHeaders} } ]; + $req->{respHeaders} = [ grep { $_ ne $header and $_ ne cgiName($header) } + @{ $req->{respHeaders} } ]; + delete $req->{env}->{ cgiName($header) }; $header =~ s/-/_/g; delete $req->{env}->{$header}; - delete $req->{env}->{"HTTP_$header"}; } # Inheritence is broken in this case with Debian >= jessie diff --git a/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm b/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm index d25dfc76c..598007453 100644 --- a/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm +++ b/lemonldap-ng-handler/lib/Lemonldap/NG/Handler/Server/Nginx.pm @@ -67,11 +67,8 @@ sub handler { my ( $self, $req ) = @_; my $hdrs = $req->{respHeaders}; $req->{respHeaders} = []; - my $cookie = $req->env->{HTTP_COOKIE}; - my $cn = $self->Lemonldap::NG::Handler::Main::tsv->{cookieName}; - $cookie =~ s/\b$cn(http)?=[^,;]*[,;\s]*//og; my @convertedHdrs = - ( 'Content-Length' => 0, Cookie => ( $cookie // '' ) ); + ( 'Content-Length' => 0, Cookie => ( $req->env->{HTTP_COOKIE} // '' ) ); my $i = 0; while ( my $k = shift @$hdrs ) { my $v = shift @$hdrs;