Benutzerauthentifizierung PHP -> Tomcat

thorbytes

Grünschnabel
Ich habe folgende Problemstellung:
Es existiert ein Apache-WebServer mit PHP (XAMPP). Tomcat wird über AJP13 auf den Apache gemappt. Es existiert eine Benutzerauthentifizierung, welche mit PHP und MySQL realisiert ist (PEAR::Auth).
Verschiedene Produkte laufen auf dem Tomcat, allerdings soll nur derjenige darauf Zugriff haben, der sich über die o.g. Authentifizierung angemeldet hat. Außerdem soll niemand die Unterseiten in den Bookmarks speichern können und dann ohne Anmeldung darauf zugreifen können.

Ich hab nun in den letzten paar Tagen schon einige Sachen ausprobiert. Am Besten erscheint mir die Möglichkeit welche unter http://www.tutorials.de/forum/j2ee/189049-tomcat-login-mechanismus.html beschrieben ist. Zumal hier mit einem Schlag das komplette Produkt geschützt ist.

Hier besteht allerdings das Problem, dass ich zum einen die Session von PHP nicht übergeben kann (zumindest wüsste ich nicht wie) und zum anderen die Login-Maske in dem Tomcat-Bereich hinterlegt sein muss.

Ich hatte schon versucht die Tomcat-Zugangsdaten über ein Formular von PHP aus zu übergeben. Hier bekomme ich aber nur den folgenden Fehler:
Code:
HTTP Status 408 - The time allowed for the login process has been exceeded. 
If you wish to continue you must either click back twice and re-click the link you
requested or close and re-open your browser

Ich hab auch schon mit PHPServlet das PHP im Tomcat-Bereich aktiviert. Mit dieser Lösung krieg ich aber allerhöchstens die Startseite geschützt. Genauso verhält es sich, wenn ich mit einem JSP-Referer-Skript arbeite.

Weiss hier jemand vielleicht eine Lösung?
 
Also die Session von PHP musst du wohl selbst auslesen.

PHP legt, soweit ich weiß, die Daten in Textdateien ab, du musst sie in Java nur mehr auslesen und in ne eigene Session Klasse speichern.

Lg, Yanick
 
yan1 hat gesagt.:
PHP legt, soweit ich weiß, die Daten in Textdateien ab, du musst sie in Java nur mehr auslesen und in ne eigene Session Klasse speichern.
Das mit den Session-Dateien ist richtig. Die werden in einem Temp-Verzeichnis abgelegt.

Allerdings habe ich mit diesem Verfahren zwei Probleme:
  1. Das JAVA-Produkt auf dem Tomcat ist ein fertiges, sodas ich keinen Zugriff auf die Sourcen habe.
  2. Beherrsche ich zwar PHP aber nur wenig JAVA. JSP würde gerade noch gehen.
Das einzige auf was ich Zugriff habe, ist die Startseite index.jsp. Hier habe ich es auch schon geschafft diese zu schützen. Ist auch kein großer Akt hier z.B. den Referer abzufragen. Allerdings wird hier dann nur die Applikation aufgerufen, und diese könnte man dann bookmarken. Also wieder nix!

Ich sehe für mich, wenn ich mit dem Auth-Mechanismus vom Tomcat arbeite, nur zwei Möglichkeiten:
  1. Ich lese auf der Startseite mit JSP die PHP-Session aus und übergebe diese an den Auth-Mechanismus vom Tomcat als "angemeldet".
  2. Ich bringe dem Auth-Mechanismus irgendwie bei, das er die Daten auch von einer externen Anmeldeseite annimmt.
Bei ersterem ist das mit dem Auslesen ja kein Problem, allerdings wie bringe ich das dem Tomcat bei?
Für zweiteres finde ich auch nirgends in der Doku einen Hinweis.
Kann man dem Tomcat vielleicht auch über den Referer beibringen, dass er für das komplette Verzeichnis nur Zugriff gewährt, wenn man von einem bestimmten Referer kommt?
 
Zurück