|
Lines 54-71
sub shib_ok {
Link Here
|
| 54 |
sub logout_shib { |
54 |
sub logout_shib { |
| 55 |
my ($query) = @_; |
55 |
my ($query) = @_; |
| 56 |
my $uri = _get_uri(); |
56 |
my $uri = _get_uri(); |
| 57 |
print $query->redirect( $uri . "/Shibboleth.sso/Logout?return=$uri" ); |
57 |
my $return = _get_return($query); |
|
|
58 |
print $query->redirect( $uri . "/Shibboleth.sso/Logout?return=$return" ); |
| 58 |
} |
59 |
} |
| 59 |
|
60 |
|
| 60 |
# Returns Shibboleth login URL with callback to the requesting URL |
61 |
# Returns Shibboleth login URL with callback to the requesting URL |
| 61 |
sub login_shib_url { |
62 |
sub login_shib_url { |
| 62 |
my ($query) = @_; |
63 |
my ($query) = @_; |
| 63 |
|
64 |
|
| 64 |
my $param = _get_uri() . get_script_name(); |
65 |
my $target = _get_return($query); |
| 65 |
if ( $query->query_string() ) { |
66 |
my $uri = _get_uri() . "/Shibboleth.sso/Login?target=" . $target; |
| 66 |
$param = $param . '?' . $query->query_string(); |
67 |
|
| 67 |
} |
|
|
| 68 |
my $uri = _get_uri() . "/Shibboleth.sso/Login?target=$param"; |
| 69 |
return $uri; |
68 |
return $uri; |
| 70 |
} |
69 |
} |
| 71 |
|
70 |
|
|
Lines 189-194
sub _get_uri {
Link Here
|
| 189 |
return $return; |
188 |
return $return; |
| 190 |
} |
189 |
} |
| 191 |
|
190 |
|
|
|
191 |
sub _get_return { |
| 192 |
my ($query) = @_; |
| 193 |
|
| 194 |
my $uri_base_part = _get_uri() . get_script_name(); |
| 195 |
|
| 196 |
my $uri_params_part = ''; |
| 197 |
foreach my $param ( $query->url_param() ) { |
| 198 |
# url_param() always returns parameters that were deleted by delete() |
| 199 |
# This additional check ensure that parameter was not deleted. |
| 200 |
my $uriPiece = $query->param($param); |
| 201 |
if ($uriPiece) { |
| 202 |
$uri_params_part .= '&' if $uri_params_part; |
| 203 |
$uri_params_part .= $param . '='; |
| 204 |
$uri_params_part .= URI::Escape::uri_escape( $uriPiece ); |
| 205 |
} |
| 206 |
} |
| 207 |
$uri_base_part .= '%3F' if $uri_params_part; |
| 208 |
|
| 209 |
return $uri_base_part . $uri_params_part; |
| 210 |
} |
| 211 |
|
| 192 |
sub _get_shib_config { |
212 |
sub _get_shib_config { |
| 193 |
my $config = C4::Context->config('shibboleth'); |
213 |
my $config = C4::Context->config('shibboleth'); |
| 194 |
|
214 |
|
| 195 |
- |
|
|