Bugzilla – Attachment 68216 Details for
Bug 17776
Shibboleth Authentication is broken in plack
Home
|
New
|
Browse
|
Search
|
[?]
|
Reports
|
Help
|
New Account
|
Log In
[x]
|
Forgot Password
Login:
[x]
[patch]
Enable Shibboleth for Plack
Enable-Shibboleth-for-Plack.patch (text/plain), 3.25 KB, created by
Matthias Meusburger
on 2017-10-17 14:27:24 UTC
(
hide
)
Description:
Enable Shibboleth for Plack
Filename:
MIME Type:
Creator:
Matthias Meusburger
Created:
2017-10-17 14:27:24 UTC
Size:
3.25 KB
patch
obsolete
>From 64d9a4b4c491c2241863860120bb814bf3561600 Mon Sep 17 00:00:00 2001 >From: Martin Renvoize <martin.renvoize@ptfs-europe.com> >Date: Thu, 2 Mar 2017 16:40:11 +0000 >Subject: [PATCH] Enable Shibboleth for Plack > >https://bugs.koha-community.org/show_bug.cgi?id=17776 >Signed-off-by: Matthias Meusburger <matthias.meusburger@biblibre.com> >--- > C4/Auth.pm | 17 +++++++---------- > C4/Auth_with_shibboleth.pm | 21 ++++++++++++++++++--- > 2 files changed, 25 insertions(+), 13 deletions(-) > >diff --git a/C4/Auth.pm b/C4/Auth.pm >index 11f57b2..98c3582 100644 >--- a/C4/Auth.pm >+++ b/C4/Auth.pm >@@ -74,16 +74,7 @@ BEGIN { > qw(shib_ok checkpw_shib logout_shib login_shib_url get_login_shib); > > # Check for good config >- if ( shib_ok() ) { >- >- # Get shibboleth login attribute >- $shib_login = get_login_shib(); >- } >- >- # Bad config, disable shibboleth >- else { >- $shib = 0; >- } >+ $shib = 0 unless shib_ok(); > } > if ($cas) { > import C4::Auth_with_cas qw(check_api_auth_cas checkpw_cas login_cas logout_cas login_cas_url); >@@ -159,6 +150,9 @@ sub get_template_and_user { > my $in = shift; > my ( $user, $cookie, $sessionID, $flags ); > >+ # Get shibboleth login attribute >+ $shib_login = get_login_shib() if $shib; >+ > C4::Context->interface( $in->{type} ); > > my $safe_chars = 'a-zA-Z0-9_\-\/'; >@@ -749,6 +743,9 @@ sub checkauth { > my $query = shift; > $debug and warn "Checking Auth"; > >+ # Get shibboleth login attribute >+ $shib_login = get_login_shib() if $shib; >+ > # $authnotrequired will be set for scripts which will run without authentication > my $authnotrequired = shift; > my $flagsrequired = shift; >diff --git a/C4/Auth_with_shibboleth.pm b/C4/Auth_with_shibboleth.pm >index 6b20511..f635861 100644 >--- a/C4/Auth_with_shibboleth.pm >+++ b/C4/Auth_with_shibboleth.pm >@@ -27,6 +27,7 @@ use C4::Members qw( AddMember_Auto ); > use C4::Members::Messaging; > use Carp; > use CGI; >+use List::Util qw(any); > > use vars qw(@ISA @EXPORT @EXPORT_OK %EXPORT_TAGS $debug); > >@@ -82,9 +83,14 @@ sub get_login_shib { > my $config = _get_shib_config(); > > my $matchAttribute = $config->{mapping}->{ $config->{matchpoint} }->{is}; >- $debug and warn $matchAttribute . " value: " . $ENV{$matchAttribute}; > >- return $ENV{$matchAttribute} || ''; >+ if ( any { /(^psgi|^plack)/i } keys %ENV ) { >+ $debug and warn $matchAttribute . " value: " . $ENV{"HTTP_".uc($matchAttribute)}; >+ return $ENV{"HTTP_".uc($matchAttribute)} || ''; >+ } else { >+ $debug and warn $matchAttribute . " value: " . $ENV{$matchAttribute}; >+ return $ENV{$matchAttribute} || ''; >+ } > } > > # Checks for password correctness >@@ -236,11 +242,20 @@ Map their attributes to what you want to see in koha > > Tell apache that we wish to allow koha to authenticate via shibboleth. > >-This is as simple as adding the below to your virtualhost config: >+This is as simple as adding the below to your virtualhost config (for CGI running): >+ >+ <Location /> >+ AuthType shibboleth >+ Require shibboleth >+ </Location> >+ >+Or (for Plack running): > > <Location /> > AuthType shibboleth > Require shibboleth >+ ShibUseEnvironment Off >+ ShibUseHeaders On > </Location> > > =item 5. >-- >2.7.4
You cannot view the attachment while viewing its details because your browser does not support IFRAMEs.
View the attachment on a separate page
.
View Attachment As Diff
View Attachment As Raw
Actions:
View
|
Diff
|
Splinter Review
Attachments on
bug 17776
:
60800
|
60847
|
61426
|
68216
|
79572
|
79573
|
80000
|
80001
|
80002
|
80003
|
80023
|
80024
|
80025
|
80026