Better fix (#2061)

This commit is contained in:
Christophe Maudoux 2020-01-18 18:58:42 +01:00
parent fd2a9ce226
commit 32d7f46b1a
2 changed files with 5 additions and 6 deletions

View File

@ -140,8 +140,8 @@ sub controlUrl {
$req->env->{urldc} = $req->{urldc};
$req->env->{_url} = $req->{_url};
$req->data->{_url} = $url;
$req->pdata->{_url} = $url;
$req->data->{_url} = encode_base64($req->{urldc},''); # Avoid \n or \n
$req->pdata->{_url} = encode_base64($req->{urldc},''); # Same here
}
PE_OK;
}

View File

@ -56,13 +56,12 @@ sub handler {
my $res = $self->Lemonldap::NG::Common::PSGI::Router::handler($req);
# Avoid permanent loop 'Portal <-> _url' if pdata cookie is not removed
my $url64 = encode_base64( $req->userData->{_url}, '' )
if $req->userData->{_url};
if ( $url64
if ( $req->userData->{_url}
and !$req->pdata->{keepPdata}
and $req->userData->{_session_id}
and $req->{env}->{HTTP_COOKIE}
and $req->{env}->{HTTP_COOKIE} =~ /$url64/ )
and $req->{env}->{HTTP_COOKIE} eq
encode_base64( $req->userData->{_url}, '' ) )
{
$self->logger->info("Force cleaning pdata");
$self->logger->warn("pdata cookie domain must be set")