Optimize URL escape calls (#595)
This commit is contained in:
parent
887695c254
commit
dfcd8486d2
|
@ -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},
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user