SimpleXMLRPCServer und Sessions

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

SimpleXMLRPCServer und Sessions

Beitragvon droptix » Donnerstag 13. März 2008, 14:34

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:

Re: SimpleXMLRPCServer und Sessions

Beitragvon veers » Donnerstag 13. März 2008, 19:28

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 ;)
My Website - 29a.ch
"If privacy is outlawed, only outlaws will have privacy." - Phil Zimmermann
droptix
User
Beiträge: 521
Registriert: Donnerstag 13. Oktober 2005, 21:27

Beitragvon droptix » Freitag 14. März 2008, 10:23

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:

Beitragvon Rebecca » Freitag 14. März 2008, 11:12

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/Cookbook/Python/Recipe/501148 (Erster google-Hit!)
Offizielles Python-Tutorial (Deutsche Version)

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

Beitragvon mitsuhiko » Freitag 14. März 2008, 12:10

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

Beitragvon droptix » Freitag 14. März 2008, 13:28

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/Cookbook/Python/Recipe/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

Beitragvon droptix » Sonntag 16. März 2008, 11:03

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

Beitragvon Leonidas » Sonntag 16. März 2008, 11:04

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 Modvoice
Benutzeravatar
jens
Moderator
Beiträge: 8458
Registriert: Dienstag 10. August 2004, 09:40
Wohnort: duisburg
Kontaktdaten:

Beitragvon jens » Sonntag 16. März 2008, 11:09

Leonidas hat geschrieben:Über Session-IDs, die in der URL via GET übertragen werden.

Was man eigentlich nie machen sollte ;)

CMS in Python: http://www.pylucid.org
GitHub | Open HUB | Xing | Linked in
Bitcoins to: 1JEgSQepxGjdprNedC9tXQWLpS424AL8cd
audax
User
Beiträge: 830
Registriert: Mittwoch 19. Dezember 2007, 10:38

Beitragvon audax » Sonntag 16. März 2008, 13:18

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

Beitragvon droptix » Montag 17. März 2008, 08:09

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:

Beitragvon EnTeQuAk » Montag 17. März 2008, 10:04

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder