Wie implementieren Sie selbstverwaltende Web-Benutzer mit Java EE 6?

8

Ich möchte eine einfache Webanwendung erstellen, die sich selbst registrierende Benutzer enthält. Mit anderen Worten, ich möchte, dass Benutzer sich registrieren, anmelden, ihre Daten verwalten, sich abmelden können und, wenn sie möchten, ihr Konto löschen. Es ist eine Art Hobby-Projekt, und um etwas Neues zu lernen, habe ich mich entschlossen, diese Website mit der neuesten Java-EE zu erstellen, die ich vorher noch nicht benutzt habe.

Ich habe mehrere Stunden damit verbracht, über JAAS, Authentifizierungsbereiche usw. zu lesen, und ich habe viele Möglichkeiten gefunden, Sicherheit basierend auf Benutzern und Rollen auf dem Server zu implementieren (wie GlassFish), aber ich habe keine Beispiele oder Hinweise dazu gefunden Implementieren Sie eine Lösung, bei der Benutzer einfach ein Registrierungsformular auf einer Webseite ausfüllen und Benutzer im System werden können. Natürlich kann ich einfach eine Datenbanktabelle mit Benutzernamen und Passwort-Hashes erstellen und alles manuell implementieren, aber es vereitelt den Zweck.

Deshalb sind meine Fragen:

  1. Ist das standardmäßige Authentifizierungs- und Sicherheits-Framework von Java EE geeignet, um eine App zu implementieren, die Benutzer selbst verwalten können? Oder ist es eher "Enterprise" und stützt sich auf externe Authentifizierung und Benutzerverwaltung?
  2. Wenn es einfach ist, das zu tun, was ich brauche, weisen Sie mich bitte auf einige Beispiele hin.

Danke!

    
Alex 08.04.2011, 04:41
quelle

2 Antworten

1

Das J2EE ist nicht sehr gut darin. Ich habe das in einer Anwendung getan. Ich habe eine Tabelle von Benutzern in der (einzigen) Datenbank, die von meiner Anwendung verwendet wird, und ich habe einen Bereich in der context.xml-Datei im META-INF-Verzeichnis der Webanwendung deklariert (ich benutze tomcat btw):

%Vor%

Die Datenquelle ist die selbe wie die im Rest der Anwendung und wird in der server.xml der Tomcat-Installation deklariert (so dass ich auf eine andere db zeigen kann, ohne die .war-Datei zu ändern).

>

Ich habe Standorte mit Rollen in der web.xml-Datei geschützt, um sicherzustellen, dass ich die Registrierungsseite und die Anmeldeseite oben geschützt habe:

%Vor%

Ich habe eine & lt; login-config & gt; Abschnitt mit FORM als die Authentifizierungsmethode:

%Vor%

Da der Realm mit einem MD5-Digest deklariert ist, muss das MD5 des Passworts in der Datenbank gespeichert werden:

%Vor%

Im Anmeldeformular wird der Tomcat angezeigt, wenn eine Authentifizierung erforderlich ist. Ich habe einen Link zum Registrierungsformular hinzugefügt:

...

%Vor%

...

Jetzt, wenn das Registrierungsformular abgeschickt wird, speichere ich den Benutzer in der Datenbank und sende eine Umleitung, um den Benutzer automatisch einzuloggen:

...

%Vor%

...

Hoffe, das wird helfen

    
Maurice Perry 08.04.2011, 11:38
quelle
0

Alternativ können Sie sich auch das Spring Security-Framework ansehen. Ich habe es mit meinen Grails Projekten so verwendet, wie du es beschrieben hast, mit Benutzern, die sich selbst angemeldet haben und ich habe es gefunden einfach zu bedienen.

    
srkiNZ84 08.04.2011 05:22
quelle

Tags und Links