# Statefull Session Bean für UserLogin



## Soahc (27. Okt 2010)

Hallo Zusammen,

ich arbeite für die Uni an einem EJB (3.1) Projekt mit Wicket-Frontend und möchte das Login in das System mit Hilfe einer Statefull Session Bean und später den Zugriff auf das System mit @RolesAllowed-Annotationen realisieren. Dementsprechend muss die Sessionbean den aktellen Nutzer und seine Rolle speichern. Laut einem Buch, mit dem ich arbeite sollte man hierfür eine Login-Buissness-Methode zur verfügung stellen, die entsprechend die übergebenen Parameter (z.B. Loginname, Passwort) prüft. Ist das Passwort und/oder Loin falsch, soll eine System Exception geworfen werden, die die Folge hat, das die BeanInstanz sofort wieder frei gegeben wird.
Leider ist das alles, was da steht und ich kann mir das noch nicht so richtig vorstellen. Kann mir jemand erklären, wie das gemeint ist bzw. etwas Beispielcode posten?

liebe Grüße,

Soahc


----------



## Marcinek (28. Okt 2010)

Das übliche Beispiel für Statefull beans ist ein Einkaufskorb.

==> google.de

Ansonsten würde ich den Login nicht statefull machen.

Ich weiß gerade auch nicht, wie man schön die statefull bean an den user binden kann.

Du musst ja in einer anderen bean dann wissen, dass die Userbean dazu gehört.

Wir machen das so, dass die User sich autentifizieren und dann ein Objekt bekommen. Dieses wird bei jedem Aufruf einer Bean mitgeschickt.


----------



## FArt (2. Nov 2010)

Soahc hat gesagt.:


> Hallo Zusammen,
> 
> ich arbeite für die Uni an einem EJB (3.1) Projekt mit Wicket-Frontend und möchte das Login in das System mit Hilfe einer Statefull Session Bean und später den Zugriff auf das System mit @RolesAllowed-Annotationen realisieren. Dementsprechend muss die Sessionbean den aktellen Nutzer und seine Rolle speichern. Laut einem Buch, mit dem ich arbeite sollte man hierfür eine Login-Buissness-Methode zur verfügung stellen, die entsprechend die übergebenen Parameter (z.B. Loginname, Passwort) prüft. Ist das Passwort und/oder Loin falsch, soll eine System Exception geworfen werden, die die Folge hat, das die BeanInstanz sofort wieder frei gegeben wird.
> Leider ist das alles, was da steht und ich kann mir das noch nicht so richtig vorstellen. Kann mir jemand erklären, wie das gemeint ist bzw. etwas Beispielcode posten?
> ...



Authentifizierung und Authorisierung klöppelt man nicht selber. So was bieten in der Regel die Container, z.B. mit JAAS....


----------



## Soahc (21. Nov 2010)

Ich wollte eh mit JAAS arbeiten... also z.B. mit den @RolesAllowed Annotationen, aber irgendwie muss ich doch auf die Rolle des aktuellen Benutzer zugriff haben, oder?


----------



## FArt (22. Nov 2010)

Soahc hat gesagt.:


> Dementsprechend muss die Sessionbean den aktellen Nutzer und seine Rolle speichern. Laut einem Buch, mit dem ich arbeite sollte man hierfür eine Login-Buissness-Methode zur verfügung stellen, die entsprechend die übergebenen Parameter (z.B. Loginname, Passwort) prüft.


Was ist das für ein Buch? Hört sich erst mal seltsam an...
Bei JAAS werden die Credentials in einem LoginContext gesetzt und gespeichert. In der Regel wird dieser Context bei jedem Call gesetzt bzw. durchgereicht und steht somit dem Container zur Überprüfung zur Verfügung. Die Überprüfung passiert in den Loginmodulen. Auch im Code kann man Rollenüberprüfungen vornehmen, z.B. in einem EJB über die Methode isUserInRole.


----------

