On Wed, 22 May 2019 at 07:34:06 +0200, Xavier wrote: > It seems that Clément has fixed something related to that feature. > Could you try > https://gitlab.ow2.org/lemonldap-ng/lemonldap-ng/commit/deff50f072c64898d1204daa28c01fdcc7275ea4 > ?
That solves the issue indeed, thanks for the pointer! I ended up amending the patch as attached though: * Not setting the ‘Access-Control-Allow-Origin: *’ header is upstream issue #1519, fixed in e6c034a38aa0e7dadcf0ce87809193b327fbc0e5. * The second to last hunk from deff50f072c64898d1204daa28c01fdcc7275ea4 (-2134,8 +2137,10) doesn't apply, and as it's only cosmetic (whitespace change) I just skipped it. Cheers, -- Guilhem.
--- a/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm
+++ b/lemonldap-ng-portal/lib/Lemonldap/NG/Portal/Simple.pm
@@ -1049,7 +1049,7 @@ sub updatePersistentSession {
}
-## @method void updateSession(hashRef infos, string id)
+## @method void updateSession(hashRef infos, string id, string kind)
# Update session stored.
# If no id is given, try to get it from cookie.
# If the session is available, update datas with $info.
@@ -1057,9 +1057,10 @@ sub updatePersistentSession {
# server local cache, if there are several LL::NG servers.
# @param infos hash reference of information to update
# @param id Session ID
+# @param kind Session kind
# @return nothing
sub updateSession {
- my ( $self, $infos, $id ) = @_;
+ my ( $self, $infos, $id, $kind ) = @_;
# Return if no infos to update
return () unless ( ref $infos eq 'HASH' and %$infos );
@@ -1084,7 +1085,9 @@ sub updateSession {
}
# Update session in global storage
- if ( my $apacheSession = $self->getApacheSession( $id, 1 ) ) {
+ if ( my $apacheSession =
+ $self->getApacheSession( $id, 1, undef, $kind ) )
+ {
# Store updateTime
$infos->{updateTime} = strftime( "%Y%m%d%H%M%S", localtime() );
@@ -1567,9 +1570,8 @@ sub process {
{
if ( ( my $code = $self->{error} ) > 0 ) {
print $self->header(
- -status => '401 Unauthorizated',
- '-WWW-Authenticate' => "SSO $self->{portal}",
- '-Access-Control-Allow-Origin' => '*',
+ -status => '401 Unauthorizated',
+ '-WWW-Authenticate' => "SSO $self->{portal}",
);
$self->quit;
}
@@ -2744,7 +2746,7 @@ sub autoRedirect {
$cdaInfos->{cookie_name} = $self->{cookieName} . "http";
}
- $self->updateSession( $cdaInfos, $cdaSession->id );
+ $self->updateSession( $cdaInfos, $cdaSession->id, "CDA" );
$self->{urldc} .=
( $self->{urldc} =~ /\?/ ? '&' : '?' )
signature.asc
Description: PGP signature

