Use pdata in Choice (#1461)
This commit is contained in:
parent
7b1fd1eae7
commit
1a6f717dfc
|
@ -150,12 +150,6 @@ sub extractFormInfo {
|
|||
$local_url .= ( $local_url =~ /\?/ ? '&' : '?' )
|
||||
. build_urlencoded( url => $req->datas->{_url} );
|
||||
}
|
||||
if ( $self->conf->{authChoiceParam}
|
||||
and my $tmp = $req->param( $self->conf->{authChoiceParam} ) )
|
||||
{
|
||||
$local_url .= ( $local_url =~ /\?/ ? '&' : '?' )
|
||||
. build_urlencoded( $self->conf->{authChoiceParam} => $tmp );
|
||||
}
|
||||
|
||||
# Forward hidden fields
|
||||
if ( $req->{portalHiddenFormValues}
|
||||
|
|
|
@ -161,17 +161,6 @@ sub fb {
|
|||
my $fb;
|
||||
my $sep = '?';
|
||||
my $ret = $conf->{portal};
|
||||
my %prm;
|
||||
foreach my $v ( [ $req->datas->{_url}, "url" ],
|
||||
[ $req->param( $conf->{authChoiceParam} ), $conf->{authChoiceParam} ] )
|
||||
{
|
||||
if ( $v->[0] ) {
|
||||
$prm{ $v->[1] } = $v->[0];
|
||||
}
|
||||
}
|
||||
if (%prm) {
|
||||
$ret .= '?' . build_urlencoded(%prm);
|
||||
}
|
||||
|
||||
eval {
|
||||
$fb = Net::Facebook::Oauth2->new(
|
||||
|
|
|
@ -77,13 +77,6 @@ sub extractFormInfo {
|
|||
# Build redirect_uri
|
||||
my $callback_url = $self->conf->{portal};
|
||||
|
||||
# Use authChoiceParam in redirect URL
|
||||
if ( $req->param( $self->conf->{authChoiceParam} ) ) {
|
||||
$callback_url .= ( $callback_url =~ /\?/ ? '&' : '?' );
|
||||
$callback_url .= build_urlencoded( $self->conf->{authChoiceParam} =>
|
||||
$req->param( $self->conf->{authChoiceParam} ) );
|
||||
}
|
||||
|
||||
# Check return values
|
||||
my $error = $req->param("error");
|
||||
my $code = $req->param("code");
|
||||
|
|
|
@ -151,16 +151,7 @@ sub extractFormInfo {
|
|||
my $check_url = $claimed_identity->check_url(
|
||||
return_to => $self->conf->{portal}
|
||||
. '?openid=1&'
|
||||
. build_urlencoded(
|
||||
( $req->datas->{_url} ? ( url => $req->datas->{_url} ) : () ),
|
||||
(
|
||||
$self->conf->{authChoiceParam}
|
||||
and $req->param( $self->conf->{authChoiceParam} )
|
||||
? ( $self->conf->{authChoiceParam} =>
|
||||
$req->param( $self->conf->{authChoiceParam} ) )
|
||||
: ()
|
||||
)
|
||||
),
|
||||
. ( $req->datas->{_url} ? build_urlencoded( url => $req->datas->{_url} ) : '' ),
|
||||
trust_root => $self->conf->{portal},
|
||||
delayed_return => 1,
|
||||
);
|
||||
|
|
|
@ -87,10 +87,6 @@ sub extractFormInfo {
|
|||
if ( $req->datas->{_url} ) {
|
||||
$prm{url} = $req->datas->{_url};
|
||||
}
|
||||
if ( $req->param( $self->conf->{authChoiceParam} ) ) {
|
||||
$prm{ $self->conf->{authChoiceParam} } =
|
||||
$req->param( $self->conf->{authChoiceParam} );
|
||||
}
|
||||
|
||||
# Forward hidden fields
|
||||
if ( exists $req->{portalHiddenFormValues} ) {
|
||||
|
|
|
@ -352,12 +352,6 @@ sub validateST {
|
|||
# TODO: @coudot: why die here without any message ?
|
||||
die if ( $proxy_url =~ /casProxy=1/ );
|
||||
$proxy_url .= ( $proxy_url =~ /\?/ ? '&' : '?' ) . 'casProxy=1';
|
||||
if ( $self->conf->{authChoiceParam}
|
||||
and my $tmp = $req->param( $self->conf->{authChoiceParam} ) )
|
||||
{
|
||||
$proxy_url .=
|
||||
'&' . build_urlencoded( $self->conf->{authChoiceParam} => $tmp );
|
||||
}
|
||||
|
||||
$self->logger->debug("CAS Proxy URL: $proxy_url");
|
||||
|
||||
|
|
|
@ -99,6 +99,7 @@ sub checkChoice {
|
|||
$name ||=
|
||||
$req->userData->{_choice}
|
||||
|| $req->sessionInfo->{_choice}
|
||||
|| $req->pdata->{_choice}
|
||||
|| $req->param( $self->conf->{authChoiceParam} )
|
||||
or return 0;
|
||||
unless ( defined $self->modules->{$name} ) {
|
||||
|
@ -107,8 +108,7 @@ sub checkChoice {
|
|||
}
|
||||
|
||||
# Store choice if module loops
|
||||
$self->p->setHiddenFormValue( $req, $self->conf->{authChoiceParam},
|
||||
$name, '', 0 );
|
||||
$req->pdata->{_choice} = $name;
|
||||
return $name if ( $req->datas->{ "enabledMods" . $self->type } );
|
||||
$req->sessionInfo->{_choice} = $name;
|
||||
$req->datas->{ "enabledMods" . $self->type } = [ $self->modules->{$name} ];
|
||||
|
|
|
@ -227,15 +227,6 @@ sub getCallbackUri {
|
|||
? '&' . $callback_get_param . '=1'
|
||||
: '?' . $callback_get_param . '=1';
|
||||
|
||||
# Use authChoiceParam in redirect URL
|
||||
if ( $self->conf->{authChoiceParam}
|
||||
and $req->param( $self->conf->{authChoiceParam} ) )
|
||||
{
|
||||
$callback_uri .= '&'
|
||||
. build_urlencoded( $self->{authChoiceParam} =>
|
||||
$req->param( $self->conf->{authChoiceParam} ) );
|
||||
}
|
||||
|
||||
$self->logger->debug("OpenIDConnect Callback URI: $callback_uri");
|
||||
return $callback_uri;
|
||||
}
|
||||
|
|
|
@ -88,7 +88,8 @@ sub AUTOLOAD {
|
|||
if ( $self->p->can($sub) ) {
|
||||
return $self->p->$sub(@_);
|
||||
}
|
||||
die "Unknown method $sub";
|
||||
require Carp;
|
||||
Carp::confess "Unknown method $sub";
|
||||
}
|
||||
|
||||
1;
|
||||
|
|
|
@ -294,12 +294,6 @@ sub _reset {
|
|||
. build_urlencoded(
|
||||
mail_token => $req->{id},
|
||||
skin => $self->p->getSkin($req),
|
||||
(
|
||||
$req->datas->{_authChoice}
|
||||
? ( $self->conf->{authChoiceParam} =>
|
||||
$req->datas->{_authChoice} )
|
||||
: ()
|
||||
),
|
||||
( $req->datas->{_url} ? ( url => $req->datas->{_url} ) : () ),
|
||||
);
|
||||
|
||||
|
@ -476,7 +470,6 @@ sub display {
|
|||
AUTH_ERROR => $req->error,
|
||||
AUTH_ERROR_TYPE => $req->error_type,
|
||||
AUTH_URL => $req->datas->{_url},
|
||||
CHOICE_PARAM => $self->conf->{authChoiceParam},
|
||||
CHOICE_VALUE => $req->{_authChoice},
|
||||
EXPMAILDATE => $req->datas->{expMailDate},
|
||||
EXPMAILTIME => $req->datas->{expMailTime},
|
||||
|
|
|
@ -291,12 +291,6 @@ sub _register {
|
|||
. build_urlencoded(
|
||||
register_token => $req->{id},
|
||||
skin => $self->p->getSkin($req),
|
||||
(
|
||||
$req->datas->{_authChoice}
|
||||
? ( $self->conf->{authChoiceParam} =>
|
||||
$req->datas->{_authChoice} )
|
||||
: ()
|
||||
),
|
||||
( $req->datas->{_url} ? ( url => $req->datas->{_url} ) : () ),
|
||||
);
|
||||
|
||||
|
@ -373,11 +367,6 @@ sub _register {
|
|||
$url .= '/?'
|
||||
. build_urlencoded(
|
||||
skin => $self->p->getSkin($req),
|
||||
(
|
||||
$req->datas->{_authChoice}
|
||||
? ( $self->conf->{authChoiceParam} => $req->datas->{_authChoice} )
|
||||
: ()
|
||||
),
|
||||
( $req->datas->{_url} ? ( url => $req->datas->{_url} ) : () ),
|
||||
);
|
||||
|
||||
|
|
|
@ -57,6 +57,7 @@ SKIP: {
|
|||
or explain( $res->[1],
|
||||
'Set-Cookie => lemonldapidp=0; domain=.sp.com; path=/; expires=-1d' );
|
||||
( $host, $url, $query ) = expectForm( $res, undef, undef, 'confirm', );
|
||||
my $spPdata = 'lemonldappdata=' . expectCookie($res, 'lemonldappdata');
|
||||
|
||||
# Choose SAML issuer
|
||||
$query .= '&idp=http%3A%2F%2Fauth.idp.com%2Fsaml%2Fmetadata';
|
||||
|
@ -65,10 +66,11 @@ SKIP: {
|
|||
'/' => IO::String->new($query),
|
||||
accept => 'text/html',
|
||||
length => length($query),
|
||||
cookie => 'lemonldapidp=0',
|
||||
cookie => "lemonldapidp=0;$spPdata",
|
||||
),
|
||||
'Post SAML choice'
|
||||
);
|
||||
$spPdata = 'lemonldappdata=' . expectCookie($res, 'lemonldappdata');
|
||||
ok( expectCookie( $res, 'lemonldapidp' ), 'IDP cookie defined' )
|
||||
or explain(
|
||||
$res->[1],
|
||||
|
@ -116,7 +118,7 @@ SKIP: {
|
|||
$url, IO::String->new($query),
|
||||
accept => 'text/html',
|
||||
length => length($query),
|
||||
cookie => 'lemonldapidp=http://auth.idp.com/saml/metadata',
|
||||
cookie => "lemonldapidp=http://auth.idp.com/saml/metadata;$spPdata",
|
||||
),
|
||||
'Post SAML response to SP'
|
||||
);
|
||||
|
|
|
@ -147,6 +147,7 @@ SKIP: {
|
|||
),
|
||||
'Select "CAS"'
|
||||
);
|
||||
$proxyPdata = 'lemonldappdata=' . expectCookie( $res, 'lemonldappdata' );
|
||||
|
||||
ok( expectCookie( $res, 'llngcasserver' ) eq 'idp',
|
||||
'Get CAS server cookie' );
|
||||
|
|
Loading…
Reference in New Issue
Block a user