From: Demian K. <dem...@vi...> - 2009-08-27 16:13:59
|
Just discovered that the hold/recall links in our VuFind installation are not working -- they go to a Voyager login page, but the page is malformed (the drop-down to the left of the barcode entry box is empty but should show a sample barcode number), and filling in the form just leads to a dead-end error screen. The current VuFind Voyager driver works by screen-scraping links from the web catalog. The problem seems to be that the links are system-specific. A link served to the VuFind server works if it's accessed from the server, but if it's passed along to a VuFind client, it no longer functions. It's nothing to do with cookies or sessions, since I can access a working URL in multiple web browsers, and as long as I stay on the same computer, it continues to work... but if I try to access it from a different box, it won't work. Maybe IP address is being hashed into one of the parameters or something like that. Since Voyager is essentially a black box, this is a hard one to understand or work around. I notice some discussion about broken Voyager hold functionality back in March or April, but I see no clear resolution. Did this ever work right? Is it working now for any of the other Voyager libraries? thanks, Demian |
From: Greg P. <Gre...@us...> - 2009-08-28 00:56:28
|
Obviously we aren't running voyager, but might it be a solution to basically fake vufind as a proxy server on the users' behalf? eg. When you send the request use: $_SERVER['REMOTE_ADDR'] = your server IP $_SERVER['HTTP_X_FORWARDED_FOR'] = client's IP So you look like a nicely behaving (and transparent) proxy server. Then when the user connects it _might_ work. This is just a stab in the dark though. For Virtua we ended up faking the login on the users' behalf inside the OPAC and avoided the issue altogether: public function renewItems($patron, $item_list) { // Stuff // Fake a login to get an authenticated session $session_id = $this->fakeLogin($patron); $virtua_url = "http://$web_server/cgi-bin/chameleon"; $client = new HTTP_Request(); $client->setMethod(HTTP_REQUEST_METHOD_POST); // More stuff $result = $client->sendRequest(); } After we stop hearing people say "I loved the old catalogue, why did you change." We'll firewall off the system altogether. Greg Pendlebury Electronic Services Officer (Systems Team) Division of Academic Information Services University of Southern Queensland Phone: +61 7 4631 1501 Fax: +61 7 4631 1841 ________________________________ From: Demian Katz [mailto:dem...@vi...] Sent: Friday, 28 August 2009 2:14 AM To: vuf...@li... Subject: [VuFind-Tech] Voyager Hold/Recall Functionality Just discovered that the hold/recall links in our VuFind installation are not working -- they go to a Voyager login page, but the page is malformed (the drop-down to the left of the barcode entry box is empty but should show a sample barcode number), and filling in the form just leads to a dead-end error screen. The current VuFind Voyager driver works by screen-scraping links from the web catalog. The problem seems to be that the links are system-specific. A link served to the VuFind server works if it's accessed from the server, but if it's passed along to a VuFind client, it no longer functions. It's nothing to do with cookies or sessions, since I can access a working URL in multiple web browsers, and as long as I stay on the same computer, it continues to work... but if I try to access it from a different box, it won't work. Maybe IP address is being hashed into one of the parameters or something like that. Since Voyager is essentially a black box, this is a hard one to understand or work around. I notice some discussion about broken Voyager hold functionality back in March or April, but I see no clear resolution. Did this ever work right? Is it working now for any of the other Voyager libraries? thanks, Demian This email (including any attached files) is confidential and is for the intended recipient(s) only. If you received this email by mistake, please, as a courtesy, tell the sender, then delete this email. The views and opinions are the originator's and do not necessarily reflect those of the University of Southern Queensland. Although all reasonable precautions were taken to ensure that this email contained no viruses at the time it was sent we accept no liability for any losses arising from its receipt. The University of Southern Queensland is a registered provider of education with the Australian Government (CRICOS Institution Code No's. QLD 00244B / NSW 02225M) |
From: Demian K. <dem...@vi...> - 2009-08-28 15:21:47
|
The proxy idea was a good one, but sadly it didn't work -- not too surprisingly, Voyager doesn't seem to respect the X-Forwarded-For header. Thanks for the suggestion, though! For now, I've fixed the problem locally by changing the hold link from the screen-scraped hold page to the main WebVoyage bibliographic record page. To guide the user, I pop up a "Please click Place Hold/Recall on the next page..." message using Javascript when available. This is really ugly, but at least it allows users to place holds, so it's a step in the right direction. If any other Voyager libraries are having the same problem and want to try this work-around, I'll be happy to share a patch... but it's too much of a hack to commit to the trunk. If anybody has found a better solution, I'd still love to hear about it! - Demian From: Greg Pendlebury [mailto:Gre...@us...] Sent: Thursday, August 27, 2009 8:07 PM To: Demian Katz; vuf...@li... Subject: RE: Voyager Hold/Recall Functionality Obviously we aren't running voyager, but might it be a solution to basically fake vufind as a proxy server on the users' behalf? eg. When you send the request use: $_SERVER['REMOTE_ADDR'] = your server IP $_SERVER['HTTP_X_FORWARDED_FOR'] = client's IP So you look like a nicely behaving (and transparent) proxy server. Then when the user connects it _might_ work. This is just a stab in the dark though. For Virtua we ended up faking the login on the users' behalf inside the OPAC and avoided the issue altogether: public function renewItems($patron, $item_list) { // Stuff // Fake a login to get an authenticated session $session_id = $this->fakeLogin($patron); $virtua_url = "http://$web_server/cgi-bin/chameleon"; $client = new HTTP_Request(); $client->setMethod(HTTP_REQUEST_METHOD_POST); // More stuff $result = $client->sendRequest(); } After we stop hearing people say "I loved the old catalogue, why did you change." We'll firewall off the system altogether. Greg Pendlebury Electronic Services Officer (Systems Team) Division of Academic Information Services University of Southern Queensland Phone: +61 7 4631 1501 Fax: +61 7 4631 1841 ________________________________ From: Demian Katz [mailto:dem...@vi...] Sent: Friday, 28 August 2009 2:14 AM To: vuf...@li... Subject: [VuFind-Tech] Voyager Hold/Recall Functionality Just discovered that the hold/recall links in our VuFind installation are not working -- they go to a Voyager login page, but the page is malformed (the drop-down to the left of the barcode entry box is empty but should show a sample barcode number), and filling in the form just leads to a dead-end error screen. The current VuFind Voyager driver works by screen-scraping links from the web catalog. The problem seems to be that the links are system-specific. A link served to the VuFind server works if it's accessed from the server, but if it's passed along to a VuFind client, it no longer functions. It's nothing to do with cookies or sessions, since I can access a working URL in multiple web browsers, and as long as I stay on the same computer, it continues to work... but if I try to access it from a different box, it won't work. Maybe IP address is being hashed into one of the parameters or something like that. Since Voyager is essentially a black box, this is a hard one to understand or work around. I notice some discussion about broken Voyager hold functionality back in March or April, but I see no clear resolution. Did this ever work right? Is it working now for any of the other Voyager libraries? thanks, Demian ________________________________ This email (including any attached files) is confidential and is for the intended recipient(s) only. If you received this email by mistake, please, as a courtesy, tell the sender, then delete this email. The views and opinions are the originator's and do not necessarily reflect those of the University of Southern Queensland. Although all reasonable precautions were taken to ensure that this email contained no viruses at the time it was sent we accept no liability for any losses arising from its receipt. The University of Southern Queensland is a registered provider of education with the Australian Government (CRICOS Institution Code No's. QLD 00244B / NSW 02225M) |