SimpleXMLRPCServer und Sessions

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Möchte einen SimpleXMLRPC-Server über einen Webserver laufen lassen. Nun wird ja bei jeder Anfrage von einem XML-RPC-Client eine neue Verbindung aufgebaut und nach der Antwort wieder abgebaut.

Gibt es irgend eine (eingebaute) Möglichkeit, den Client wieder zu erkennen, also mit Sessions zu arbeiten? Oder müsste ich mir sowas selber basteln?
Benutzeravatar
veers
User
Beiträge: 1219
Registriert: Mittwoch 28. Februar 2007, 20:01
Wohnort: Zürich (CH)
Kontaktdaten:

droptix hat geschrieben:Möchte einen SimpleXMLRPC-Server über einen Webserver laufen lassen. Nun wird ja bei jeder Anfrage von einem XML-RPC-Client eine neue Verbindung aufgebaut und nach der Antwort wieder abgebaut.

Gibt es irgend eine (eingebaute) Möglichkeit, den Client wieder zu erkennen, also mit Sessions zu arbeiten? Oder müsste ich mir sowas selber basteln?
Theoretisch, könntest du eine Session Id per Cookie speichern. Praktisch ist es wohl intelligenter diese als Parameter zu übergeben ;)
[url=http://29a.ch/]My Website - 29a.ch[/url]
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Der Client für den SimpleXMRRPCServer ist kein Browser, sondern ein manuell geschriebener Client, an den ich später auch eine GUI hängen möchte. Dann kann ich keine Cookies speichern, richtig?

Nochmal zur ersten Frage: Gibt's eine fertige Lösung dafür? Ich bin doch sicher nicht der erste, der Sessions braucht.
Benutzeravatar
Rebecca
User
Beiträge: 1662
Registriert: Freitag 3. Februar 2006, 12:28
Wohnort: DN, Heimat: HB
Kontaktdaten:

Es gibt [mod]cookielib[/mod] und [mod]Cookie[/mod]. :)

Hier hat mal wer einen XMLRPC-Client und Server gepostet, welcher Cookies verwendet: http://aspn.activestate.com/ASPN/Cookbo ... ipe/501148 (Erster google-Hit!)
Offizielles Python-Tutorial (Deutsche Version)

Urheberrecht, Datenschutz, Informationsfreiheit: Piratenpartei
mitsuhiko
User
Beiträge: 1790
Registriert: Donnerstag 28. Oktober 2004, 16:33
Wohnort: Graz, Steiermark - Österreich
Kontaktdaten:

HTTP Basic Auth :)
TUFKAB – the user formerly known as blackbird
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Rebecca hat geschrieben:Es gibt [mod]cookielib[/mod] und [mod]Cookie[/mod]. :)

Hier hat mal wer einen XMLRPC-Client und Server gepostet, welcher Cookies verwendet: http://aspn.activestate.com/ASPN/Cookbo ... ipe/501148 (Erster google-Hit!)
Wie gesagt, der Client ist nicht der Browser. Für mich sind Cookies ein reines Browser-Ding, oder liege ich da falsch? Eigentlich sind das auch nur Textdateien mit Plaintext-Daten...
mitsuhiko hat geschrieben:HTTP Basic Auth :)
Das ist klar, aber ein und derselbe Benutzer könnte sich ja mehrfach zur gleichen Zeit anmelden. HTTP Basic Auth erkennt ja nur den Benutzer, richtig? Wenn den Account mehrere gleichzeitig benutzen können, dann braucht jeder Client eine eigene Session. Eine Session pro Benutzer reicht dann nicht aus... nicht dass sich die Clients in die Quere kommen können.

[Edit:] Wie ich auf Wikipedia gerade lese, werden Cookies im HTTP-Header hin- und hergeschickt. Das klingt gut und danach, wonach ich suche. D.h. ich muss sie nicht explizit als Argument einer XML-RPC-Methode mitschicken. Der SimpleXMLRPCServer muss die Cookie-Info aber aus dem Header der HTTP-Anfrage rauspopeln... Cookies in Browsern sind mir wohl einfach nur geläufiger als ein Bestandteil von HTTP.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Bei PHP sind Sessions auch dann möglich, wenn im Browser Cookies deaktiviert sind. Wie geht das eigentlich?
Leonidas
Python-Forum Veteran
Beiträge: 16025
Registriert: Freitag 20. Juni 2003, 16:30
Kontaktdaten:

droptix hat geschrieben:Bei PHP sind Sessions auch dann möglich, wenn im Browser Cookies deaktiviert sind. Wie geht das eigentlich?
Über Session-IDs, die in der URL via GET übertragen werden.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Benutzeravatar
jens
Python-Forum Veteran
Beiträge: 8502
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Leonidas hat geschrieben:Über Session-IDs, die in der URL via GET übertragen werden.
Was man eigentlich nie machen sollte ;)

GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Und genau aus dem Grund tut PHP es. Einfach aus Trotz.
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Leonidas hat geschrieben:Über Session-IDs, die in der URL via GET übertragen werden.
Das komische dabei ist, dass man die Session-ID nicht in seinen HTML-Code eingeflochten hat, aber der "gerenderte" HTML-Quelltext die dann trotzdem enthält. Also irgendwie hängt der PHP-Interpreter die GET-Variablen dann einfach an alle URLs und Formulare hinten dran.

Ging mir öfter auch schon so, und ich wusste nicht wieso.
EnTeQuAk
User
Beiträge: 986
Registriert: Freitag 21. Juli 2006, 15:03
Wohnort: Berlin
Kontaktdaten:

Du kannst den Sourcecode ausm ASPN (oben gepostet) ruhig verwenden. Cookies werden in einer Datei gespeichert, verwenden kannst du sie also auch in deinern Anwendung und nicht nur in Browsern. Schau dir dazu mal die Definition der Klasse CookieAuthXMLRPCTransport an, da wirds angewandt.


MfG EnTeQuAk
Antworten