Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Netzwerke (https://www.delphipraxis.net/14-netzwerke/)
-   -   Delphi Probleme mit IdHTTPServer und weitergabe der Session (https://www.delphipraxis.net/194500-probleme-mit-idhttpserver-und-weitergabe-der-session.html)

DelTurbo 30. Nov 2017 10:34

Probleme mit IdHTTPServer und weitergabe der Session
 
Hallo,
ich habe ein "kleines", für mich scheinbar unlösbares Problem.
Ich möchte die "Session" die ich bei IdHTTPServer1CommandGet bekomme an IdMappedPortTCP weitergeben. Und das dann IdMappedPortTCP nur bei dieser "Session" Reagiert.

Hintergrund:
Ich möchte das Verschiedene Raspi´s über VPN auf einen Server mit fester Domian/IP Connecten. Wenn dann dort ein User Connected und sich per User/Pass identifiziert weitergeleitet wird über VPN auf SEINEN Raspi. User/Pass/VPN-IP Zuordnung habe ich.

Was ich bisher gelöst habe:
Ich habe einen IdHTTPServer intern auf Port 8888 laufen. In IdMappedPortTCP.MappedHost und Port habe ich diesen eingetragen. Das heißt beim ersten Connecten kommt der User auf "meinen" HTTPServer wo die Abfrage realisiert ist. Ist User/Pass richtig trage ich die VPN-IP von seinem in MappedHost und in MappedPort 80 ein. Dann gebe ich <META HTTP-EQUIV="refresh" CONTENT="1"> zurück. Wenn der Refresh gemacht wird ist er auf seinem Raspi weitergeleitet. Das klappt sogar.

Wenn nun wieder ein User Connectet dann läuft er allerdings nicht auf "meinen" HTTPServer sondern direkt zu dem "fremden" Raspi.

Nun zur meiner Frage:
Wie kann ich das ändern das User 1 auf seinem Raspi ist und wenn User 2 kommt auf meinen HTTPServer geleitet wird.

Gruß und vielen dank im Voraus

Codehunter 30. Nov 2017 13:55

AW: Probleme mit IdHTTPServer und weitergabe der Session
 
Ich denke das wird so nicht funktionieren. Wenn du das an der Session-ID aufhängst, dürfte der fremde Raspi eine eigene Session aufmachen. Das heißt, der Client würde bei seiner nächsten Anfrage an deinen, nennen wir es mal so, Multiplexer wie eine neue Verbindung erscheinen. Denn dein Multiplexer weiß ja am Ende nicht, was der fremde Raspi und der Client untereinander vereinbaren. Dein Multiplexer bleibt auf dem Stand den er beim initialen Request eingenommen hat.

Das wo du gedanklich hin willst ähnelt wahrscheinlich mehr einem Proxy oder Loadbalancer.

DelTurbo 30. Nov 2017 14:25

AW: Probleme mit IdHTTPServer und weitergabe der Session
 
Danke für die Antwort.
Es scheint wirklich nicht zu klappen. Schade eigentlich. 3 Tage umsonst gesucht.

Nun habe ich eine andere Idee, die sogar klappt, allerdings noch nicht so ausgereift ist.
Ich habe hier eine Seite im Netz gefunden. Er macht das über TCPServer und TCPClient. Dort merke ich mir beim Connecten die IP des Client (Also vom User) und wo er hin muss. Ich mache das wie in Punkt 2.3 beschrieben.

Beim Execute schau ich dann einfach nach ob ich den "kenne" und mache die Weiterleitung dementsprechend. Das heißt wie in Punkt 2.3 beschrieben ändere ich die IP/Port.

Ich teste das hier auf einigen PCs mit mehreren Gegenstellen. Ich habe allerdings eine Seite wo ein Bild fehlt. Das kann ich mir nicht erklären. Ich kann mit 2 PCs drauf und werde auf verschiedene Ziele weitergeleitet die ich vorher (erstmal von Hand) eingetragen habe.

Nun versuche ich gerade eine SSL Verbindung herzustellen. Das klappt noch nicht. Aber ich habe hier im Forum schon etwas gefunden wo erklärt wird wie ich die CertFiles erstellen kann.

Sollte das am Ende auch nicht klappen (ich bin ja einiges gewöhnt mittlerweile :? ) Dann versuche ich es mal mit einem Proxy.

Gruß und danke vorerst....
PS.: Ich frage mich immer noch warum das Bild vom Drucker Webinterface nicht kommt.

Nachtrag: SSL klappt nun auch. Ich kann nun vom Client per SSL auf den Server, und dann geht es weiter mit einer Verbindung die kein SSL hat (also Port 80).


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:16 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz