Hinzufügen von benutzerdefinierten context-Informationen zu EJB-Methode aufruft

Möchte ich weitergeben-Authentifizierung Informationen zu EJB stateless session beans, die beim aufrufen Ihrer Methoden aus einer Java-Webanwendung (Wicket). Die Informationen bestehen aus einer Benutzerkennung und eines Authentifizierungs-Typ (Sie erinnern sich Cookies oder user/Passwort) gespeichert ist, die in der http-session. Eine offensichtliche Lösung ist, fügen Sie diese als parameter an alle EJB-Methoden, aber dies ist mühsam und ich hoffe, dass eine andere Lösung existiert.

Den JNDI-lookup von EJB-beans erfolgt über javax.die Benennung.InitialContext#lookup(String) in der web-tier.

Gibt es eine portable Möglichkeit, um die Authentifizierungsinformationen an eine aufrufende Kontext, so es verfügbar ist, zu den Bohnen geben? Ich brauche diesen Prozess, um verfügbar zu sein für den Anrufer sowohl in der EJB-Schicht (für eine eventuelle web-service-Endpunkt) und in der web-Schicht.

Einige weitere Informationen

Ich bin mit Java EE 6. CDI ist nicht benutzt, und ich würde eher vermeiden, es umzusetzen.

Authentifizierung erfolgt, indem der web-Schicht mit stateless beans Validierung erinnern, cookies, und Benutzer/Passwort-Kombinationen. Wenn ein Besucher zuerst auf die site, die Authentifizierung mit der remember-cookie probiert. Wenn schließlich erforderlich, wird der Benutzer aufgefordert, die Anmeldung mit Benutzername und Passwort. Wie oben erwähnt, wird die Authentifizierung-status wird gespeichert, in der http-session. Ich glaube nicht, das die Java-EE-security-Modell basiert auf reichen, da ich nicht herausfinden konnte, wie diese Authentifizierung könnte, angemessen berücksichtigt werden.

Den Autorisierungs-Schema basiert auf dynamischen Rollen ähnlich wie Facebook bestimmt die Autorisierung basierend auf der Verbindung zwischen 2 Usern und einige Einstellungen. Einige Handlungen auch berücksichtigen, die Art der Authentifizierung. Zum Beispiel, änderung von account-Einstellungen erfordert, Benutzer/Passwort und das cookie ist noch nicht genug. Von dem, was ich verstanden habe, die Java-EE-standard-Gruppen und-Rollen sind nicht eine gute Passform für diese Anforderung.

Andere Verwandte Fragen, die ich gefunden

EJB3 & Wie JAAS-Subjekt/AUFTRAGGEBER weitergegeben EJB Tier vom servlet-container?

Die Kontrolle der Sicherheits-Grundsatz verabschiedet, die auf eine EJB-Aufruf

Die Bindung einer Benutzer-Entität und einem GlassFish AUFTRAGGEBER

Zugriff auf die wichtigsten Kunden innerhalb einer ejb-Methode

dynamische Rollen auf einem Java-EE-server

Ich hoffe meine Frage ist klar genug. Wenn mehr Informationen benötigt werden, werde ich mich gerne zur Verfügung stellen.

Bearbeiten

Feste links. Notiz hinzufügen über die CDI.

  • adam-bien.com/roller/abien/entry/how_to_pass_context_with beschreibt einen Ansatz mit thread-lokalen Speicher für den Austausch von Kontextinformationen zwischen den Schichten. Ich bin jedoch besorgt, dass clustering und asynchrone Methodenaufrufe wird es problematisch mit solchen Ansatz.
InformationsquelleAutor bernie | 2011-11-05
Schreibe einen Kommentar