From e2d47ce98276274daec94a006422810992efd48c Mon Sep 17 00:00:00 2001 From: Thomas CHEMINEAU Date: Thu, 5 Nov 2009 14:25:55 +0000 Subject: [PATCH] fixe #314458 - add url parameter in URL of CAS portal redirection --- .../lib/Lemonldap/NG/Portal/AuthCAS.pm | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthCAS.pm b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthCAS.pm index a157c508a..714464bb2 100644 --- a/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthCAS.pm +++ b/modules/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/AuthCAS.pm @@ -9,7 +9,7 @@ use strict; use Lemonldap::NG::Portal::Simple; use AuthCAS; -our $VERSION = '0.11'; +our $VERSION = '0.12'; ## @apmethod int authInit() # Does nothing. @@ -28,13 +28,23 @@ sub extractFormInfo { casUrl => $self->{CAS_url}, CAFile => $self->{CAS_CAFile}, ); - my $login_url = $cas->getServerLoginURL( $self->{CAS_loginUrl} ); + + my $casLoginUrl = $self->{CAS_loginUrl}; + my $casValidationUrl = $self->{CAS_validationUrl}; + if ($self->{_url}) + { + my $url_param = 'url=' . $self->{_url}; + $casLoginUrl .= ( $casLoginUrl =~ /\?/ ? '&' : '?' ) . $url_param; + $casValidationUrl .= ( $casValidationUrl =~ /\?/ ? '&' : '?' ) . $url_param; + } + + my $login_url = $cas->getServerLoginURL( $casLoginUrl ); my $ticket = $self->param('ticket'); # Unless a ticket has been found, we redirect the user unless ( $self->{user} = - $cas->validateST( $self->{CAS_validationUrl}, $ticket ) ) + $cas->validateST( $casValidationUrl, $ticket ) ) { print $self->redirect( -uri => $login_url,