Hallo zusammen,
weiß jemand, ob und wie man einen squid dazu bringen kann, die Authentifizierungsdaten (user/password) per SOAP aus einer Applikation zu beziehen?
Die Applikation (Bibliotheksverwaltung "LIBERO") stellt per SOAP eine Schnittstelle zur eigenen Datenbank bereit, die Aufrufparameter sind weitgehend bekannt)
Hallo Thomas,
Am 06.03.2013 20:28, schrieb Thomas Müller:
Hallo zusammen,
weiß jemand, ob und wie man einen squid dazu bringen kann, die Authentifizierungsdaten (user/password) per SOAP aus einer Applikation zu beziehen?
Die Applikation (Bibliotheksverwaltung "LIBERO") stellt per SOAP eine Schnittstelle zur eigenen Datenbank bereit, die Aufrufparameter sind weitgehend bekannt)
Ja, genauso wird das auch in einer der größeren Bilbiotheken hier in Dresden gemacht. Ich hatte damals(TM) zu meiner Ausbildungszeit das Glück, das technologisch mit bereitstellen zu können.
Du benötigst im Squid die Direktive "auth_param basic program /path/to/prog" und natürlich ein selbst geschriebenes Skript dafür. Das wurde damals mit einem Perl-Skript gelöst. Zu beachten ist, dass der Squid den Benuter und das Kennwort im Format "$user $password" als Argumente an das Skript übergibt und das dein Programm im Erfolgsfall "OK" und im Fehlerfall "ERR" zurück geben muss.
Kleiner Hinweis noch am Rande, in dem Fall, dass du das auch via Perl lösen möchtest, solltest du in der Shebang-Zeile vom Skript den Parameter "-l" mit übergeben. Ansonsten gibt es Probleme mir der Parameterübergabe und der Auswertung deines Returncodes. Da sucht man sich ansonsten dumm und dämlich :-)
MfG Maddin
Hallo Martin,
da habe ich ja Glück dass das hier schon mal jemand gemacht hat :-) Die "größere Bibliothek" ist dann wohl die SLUB, die steht bei LIB-IT als Referenz...(?)
Nun gehen leider meine perl-Kenntnisse faktisch gegen Null was Eigenentwicklung von Scripts betrifft, hättest Du evtl. ein Beispiel für solch ein Hilfsscript?
Ich hätte auch noch die Idee, die Userdaten aus der LIBERO DB in geeigneter Form zu exportieren (lt. Hersteller bietet LIBERO eine odbc Schnittstelle dafür) und eine lokale mysql-Datenbank damit zu füttern. Die Authentifizierung dagegen kann squid meiner Kenntnis nach per squid_auth_db machen.
Am Donnerstag, 7. März 2013, 17:42:52 schrieb MegaMailingliste:
Hallo Thomas,
Die Applikation (Bibliotheksverwaltung "LIBERO") stellt per SOAP eine Schnittstelle zur eigenen Datenbank bereit, die Aufrufparameter sind weitgehend bekannt)
Ja, genauso wird das auch in einer der größeren Bilbiotheken hier in Dresden gemacht.
Du benötigst im Squid die Direktive "auth_param basic program /path/to/prog" und natürlich ein selbst geschriebenes Skript dafür. Das wurde damals mit einem Perl-Skript gelöst. Zu beachten ist, dass der Squid den Benuter und das Kennwort im Format "$user $password" als Argumente an das Skript übergibt und das dein Programm im Erfolgsfall "OK" und im Fehlerfall "ERR" zurück geben muss. MfG Maddin
Lug-dd maillist - Lug-dd@mailman.schlittermann.de https://ssl.schlittermann.de/mailman/listinfo/lug-dd
Hallo Thomas,
Thomas Müller thomas@mueller-meissen.de (Do 07 Mär 2013 18:41:05 CET):
Hallo Martin,
da habe ich ja Glück dass das hier schon mal jemand gemacht hat :-) Die "größere Bibliothek" ist dann wohl die SLUB, die steht bei LIB-IT als Referenz...(?)
Nun gehen leider meine perl-Kenntnisse faktisch gegen Null was Eigenentwicklung von Scripts betrifft, hättest Du evtl. ein Beispiel für solch ein Hilfsscript?
#! /usr/bin/perl
use strict; use warnings;
sub ask_somebody($$);
$| = 1; while (<>) { my ($user, $pass) = split;
if (ask_somebody($user, $pass)) { print "OK\n"; } else { print "ERR\n"; } }
sub ask_somebody($$) { my ($user, $pass) = @_;
… if (… alles gut …) return 1; return 0; }
Das mit dem "-l" kann ich nicht nachvollziehen.
Ich hätte auch noch die Idee, die Userdaten aus der LIBERO DB in geeigneter Form zu exportieren (lt. Hersteller bietet LIBERO eine odbc Schnittstelle dafür) und eine lokale mysql-Datenbank damit zu füttern. Die Authentifizierung dagegen kann squid meiner Kenntnis nach per squid_auth_db machen.
Du kannst auch ODBC direkt aus dem Perl heraus ansprechen. Aber wahrscheinlich genügt das Perl-Modul „Soap::Lite“. (Aber von Seife habe ich keine Ahnung…)
Hallo Heiko,
danke für den Codeschnipsel. Ich versuch's mal zu verstehen und mit der "Seife"abfrage zu verbinden :-)
Ansonsten bleibt mir immernoch die Krücke mit dem Umweg über import in mysql. Es soll wie immer gestern fertig sein...
Gruß Thomas
Am Donnerstag, 7. März 2013, 21:12:32 schrieb Heiko Schlittermann:
Hallo Thomas,
Thomas Müller thomas@mueller-meissen.de (Do 07 Mär 2013 18:41:05 CET):
Hallo Martin,
da habe ich ja Glück dass das hier schon mal jemand gemacht hat :-) Die "größere Bibliothek" ist dann wohl die SLUB, die steht bei LIB-IT als Referenz...(?)
Nun gehen leider meine perl-Kenntnisse faktisch gegen Null was Eigenentwicklung von Scripts betrifft, hättest Du evtl. ein Beispiel für solch ein Hilfsscript?
#! /usr/bin/perl use strict; use warnings; sub ask_somebody($$); $| = 1; while (<>) { my ($user, $pass) = split; if (ask_somebody($user, $pass)) { print "OK\n"; } else { print "ERR\n"; } } sub ask_somebody($$) { my ($user, $pass) = @_; … if (… alles gut …) return 1; return 0; }
Das mit dem "-l" kann ich nicht nachvollziehen.
Ich hätte auch noch die Idee, die Userdaten aus der LIBERO DB in geeigneter Form zu exportieren (lt. Hersteller bietet LIBERO eine odbc Schnittstelle dafür) und eine lokale mysql-Datenbank damit zu füttern. Die Authentifizierung dagegen kann squid meiner Kenntnis nach per squid_auth_db machen.
Du kannst auch ODBC direkt aus dem Perl heraus ansprechen. Aber wahrscheinlich genügt das Perl-Modul „Soap::Lite“. (Aber von Seife habe ich keine Ahnung…)
lug-dd@mailman.schlittermann.de