JBoss - JAAS LDAP Authentication

Gainwar

Erfahrenes Mitglied
Guten Morgen,

ich habe ohne weitere Probleme eine LDAP Authentifizierung mit dem "LdapExtLoginModule" erstellt. Dieses authentifiziert den Benutzer und weist ihm seine Rollen bzw. Gruppen zu. Die Überprüfung der Rollen mit Hilfe des "<security-context>" funktioniert einwandfrei.

Nun möchte ich an mancher Stelle erneut mittels Java-Code überprüfen ob der Benutzer in einer gegebenen Rolle ist.
Es gibt die Möglichkeit anhand der Methode "HttpServletRequest.isUserInRole(String r)" zu überprüfen ob der Benutzer in einer gegebenen Rolle ist, was ich nicht möchte, da ich keinen HttpServletRequest an gegebener Stelle zur Verfügung habe.

Wichtig für mich ist es nun, ob es möglich ist herauszufinden in welchen Gruppen der Benutzer ist - sozusagen eine Funktion "getRolesOfUser".

Durch die JAAS Authentifizierung wurden ja schon einmal alle Rollen des Benutzers abgefragt, also möchte ich es vermeiden erneut eine Verbindung zum LDAP Server aufzubauen und besser die bereits vorhandenen Daten von JAAS zu verwenden.

Gruß
Manuel F
 
Hallo,

wo willst du diese Informationen denn noch haben?
Es gibt natürlich verschiedene Möglichkeiten (User-)Kontextabhängige Daten mitzuschleifen. Wenn du beispielsweise von einer Webanwendung (einem Servlet) direkt eine Methode in deiner Service Schicht aufrufst und du weist das der aufruf immer im selben Thread stattfindet könntest du die informationen ThreadLocal verwalten und im Servlet setzen / (bzw. an entsprechender Stelle vorher -> ServletFilter). Aber Vorsicht ob das funktioniert oder nicht hängt sehr stark vom Container ab.

Ansonsten wäre eine andere Möglichkeit den User Context direkt oder indirekt über eine entsprechende Context-ID jedem Aufruf mitzugeben. Das ist etwas was sich sehr elegant via AOP mit AspectJ & Co. lösen lässt.

Siehe auch hier:
http://www.tutorials.de/forum/java/320124-dynamische-logfiles-mit-log4j.html

Gruß Tom
 
Zurück