Authentifikation bei JSF-Seiten

Ulrikop

Grünschnabel
Hallo,
ich erstelle im Moment eine Internetseite mit JSF.
Das ist mein ersts Projekt mit JSF. Habe bis jetzt nur Erfahrung mit "normalen" Java-Anwendungen und Web-Projekte mit php.

Meine Web-Anwendung läuft soweit bereits, nun wollte ich mich um die Authentifikation und nutzerspezifische Daten kümmern.

Auf die Seiten sollen also nicht alle zugreifen dürfen. Bei einem Zugriff auf eine Seite ohne eingeloggt zu sein, soll automatisch auf die LogIn-Seite weitergeleitet werden.
Wenn man sich bei der LogIn-Seite erfolgreich eingeloggt hat, hat man Zugriff auf die Seiten und hat Rollen/Nutzer abhängige Funktionen zur Verfügung.
Zusätzlich sollen Daten die den Nutzer betreffen in das System geladen werden.

Das ist denke ich eine Standardanforderung an zugriffsgesichteren Seiten.
Eigentlich wollte ich so vorgehen wie ich es in php gemacht habe:
Auf allen Seiten wird als erst eine Funktion aufgerufen die abfrägt, ob in der session-bean "LogIn" ein Name und Rolle gesetzt ist. Wenn nicht soll direkt auf die LogIn-Seite umgeleitet werden um so den Zugriff auf die Seiten zu kontrollieren, bei denen man eingeloggt sein muss.
Auf der LogIn-Seite kann man Nutzer und Passwort eingeben. Nach dem Abschicken frägt Java eine Datenbank an (ob mit Hibernate oder JPA weiß ich noch nicht), frägt zu dem Nutzernamen das Passwort aus der Datenbank ab und um Abfragen zu sparen frägt die Anfrage auch zusätzlich gleich allgemein gültige Daten ab, die in der selben Tabelle gespeichert sind (wie echter Name, UserID - für den Zugriff auf andere Tabellen).
Stimmen die Passwörter überein werden die zusätzlichen Informationen in Variablen geschrieben und der Nutzer wird auf die nächste Seite weitergeleitet.
Da zusätzlich die UserID vorhanden ist kann nun ohne Probleme bei Bedarf weitere Daten geholt werden.

Das wollte ich alles selber schreiben, da dies ja eigentlich nicht so kompliziert sein sollte - und da die Informationen serverseitig in der Bean gespeichert werden, auch sicher sein.

Aber nun habe ich gelesen, dass man die Authentifikation mit Frameworks umsetzen soll.
J2EE bringt von sich schon ein Authentifikation-System mit, was aber nicht genutzt werden soll da es schnell an seine Grenzen stößt - das stand in einem Buch mit dem ich JSF mir angeeignet habe. Allerdings geht es leider auf diese Grenzen nicht ein.
Das Buch ist dann nur kurz ("genauer können wir in diesem Buch nicht darauf eingehen") auf Authentifikation mittels JBoss-Seam eingegangen. Beim erstmaligen durchlesen habe ich es noch nicht kapiert wir es geht.
Aber eins ist mir aufgefallen: Es macht anscheinend irgend wie die User und Passwort Abfragen automatisch aber wie ich dann hier zusätzliche Informationen wie eine UserID gleich mitabfragen kann, stand da nicht. Wenn dies nicht geht wär das ja doof.

Aber ok, warum ich hier nun schreibe bevor ich mich in die Tiefen von Dokus stürze ist, dass ich um eure Erfahrungen zu diesem Thema bitte.
Was hat es für große Nachteile wenn ich es per Hand programatisch wie oben beschrieben schreibe (kommt mir im Moment am simpelsten vor)?
Welche Grenzen hat das Authentifikations-System von J2EE?
Was bringen die Frameworks zur Authentifikation für einen Mehrwert?
Welches Framework würdet ihr mir empfehlen um meine oben beschriebenen Anforderungen umzusetzen?

Danke für eure Meinungen
 
Ohne mich jetzt groß mit JSF auszukennen würde ich selbst warscheinlich der Einfachheit halbe einen PHP-Clone alles Session und Variablen-Prüfung schreiben ...
Was Java selbst an Frameworks mitbringt weis ich leider nicht.
 
Es hängt wie immer von deinen Anforderungen/Zielen ab.

Wenn du lernen willst, bau es selbst.

Wenn du das Rad nicht neu erfinden möchtes und Erfahrungen mit Frameworks sammeln möchtest, google mal nach Spring Security oder JEE Security
 
Zurück