Optimize URL escape calls (#595)

This commit is contained in:
Xavier Guimard 2018-05-18 16:34:59 +02:00
parent 887695c254
commit dfcd8486d2
2 changed files with 19 additions and 29 deletions

View File

@ -2,7 +2,7 @@ package Lemonldap::NG::Portal::Auth::Twitter;
use strict;
use Mouse;
use URI::Escape;
use Lemonldap::NG::Common::FormEncode;
use Lemonldap::NG::Common::UserAgent;
use Lemonldap::NG::Portal::Main::Constants qw(PE_OK PE_ERROR);
@ -79,6 +79,7 @@ sub extractFormInfo {
# 1.1 Try to get token to dialog with Twitter
my $callback_url = $self->p->fullUrl($req);
my %prm = ( twitterback => 1 );
# Twitter callback parameter
$callback_url .=
@ -86,14 +87,11 @@ sub extractFormInfo {
# Add request state parameters
if ( $req->datas->{_url} ) {
my $url_param = 'url=' . uri_escape( $req->datas->{_url} );
$callback_url .= ( $callback_url =~ /\?/ ? '&' : '?' ) . $url_param;
$prm{url} = $req->datas->{_url};
}
if ( $req->param( $self->conf->{authChoiceParam} ) ) {
my $url_param =
$self->conf->{authChoiceParam} . '='
. uri_escape( $req->param( $self->conf->{authChoiceParam} ) );
$callback_url .= ( $callback_url =~ /\?/ ? '&' : '?' ) . $url_param;
$prm{ $self->conf->{authChoiceParam} } =
$req->param( $self->conf->{authChoiceParam} );
}
# Forward hidden fields
@ -102,12 +100,11 @@ sub extractFormInfo {
$self->logger->debug("Add hidden values to Twitter redirect URL");
foreach ( keys %{ $req->{portalHiddenFormValues} } ) {
$callback_url .=
( $callback_url =~ /\?/ ? '&' : '?' )
. $_ . '='
. uri_escape( $req->{portalHiddenFormValues}->{$_} );
$prm{$_} = $req->{portalHiddenFormValues}->{$_};
}
}
$callback_url .=
( $callback_url =~ /\?/ ? '&' : '?' ) . build_urlencoded(%prm);
my $request = Net::OAuth->request("request token")->new(
consumer_key => $self->conf->{twitterKey},

View File

@ -2,7 +2,7 @@ package Lemonldap::NG::Portal::Lib::CAS;
use strict;
use Mouse;
use URI::Escape;
use Lemonldap::NG::Common::FormEncode;
use XML::Simple;
use Lemonldap::NG::Common::UserAgent;
@ -321,17 +321,15 @@ sub callPgtUrl {
sub getServerLoginURL {
my ( $self, $service, $srvConf ) = @_;
return
$srvConf->{casSrvMetaDataOptionsUrl}
. "/login?service="
. uri_escape($service);
return "$srvConf->{casSrvMetaDataOptionsUrl}/login?"
. build_urlencoded( service => $service );
}
# Get Server Logout URL
sub getServerLogoutURL {
my ( $self, $service, $srvUrl ) = @_;
return $srvUrl . "/logout?service=" . uri_escape($service);
return "$srvUrl/logout?" . build_urlencoded( service => $service );
}
# Validate ST
@ -339,11 +337,7 @@ sub validateST {
my ( $self, $req, $service, $ticket, $srvConf ) = @_;
my $proxyUrl;
my $serviceValidateUrl =
$srvConf->{casSrvMetaDataOptionsUrl}
. "/serviceValidate?service="
. uri_escape($service);
$serviceValidateUrl .= "&ticket=$ticket";
my %prm = ( service => $service, ticket => $ticket );
my $proxied = $srvConf->{casSrvMetaDataOptionsProxiedServices} || {};
my $proxy_url;
@ -361,10 +355,12 @@ sub validateST {
$req->datas->{casProxyUrl} = $proxy_url;
$serviceValidateUrl .= "&pgtUrl=" . uri_escape($proxy_url);
$prm{pgtUrl} = $proxy_url;
}
my $response = $self->ua->get($serviceValidateUrl);
my $response =
$self->ua->get( "$srvConf->{casSrvMetaDataOptionsUrl}/serviceValidate?"
. build_urlencoded(%prm) );
$self->logger->debug(
"Get CAS serviceValidate response: " . $response->as_string );
@ -448,11 +444,8 @@ sub storePGT {
sub retrievePT {
my ( $self, $service, $srvConf ) = @_;
my $proxyUrl =
$srvConf->{casSrvMetaDataOptionsUrl}
. "/proxy?targetService="
. uri_escape($service);
$proxyUrl .= "&pgt=" . $self->{pgtId};
my $proxyUrl = "$srvConf->{casSrvMetaDataOptionsUrl}/proxy?"
. build_urlencoded( targetService => $service, pgt => $self->{pgtId} );
my $response = $self->ua->get($proxyUrl);