Grundlegende Frage zu Java Security

alex83

Grünschnabel
Hallo Kollegen,

ich habe grundlgende Fragen zu Java Security.

Mir geht es um folgendes Thema.
Ich möchte für eine EJB die Methoden entweder über Annotation oder deklarativ über Deployment Deskriptor mit entsprechenden Rollen schützen.
Dazu schreibe ich ein LoginModul mit JAAS. Es soll den Nutzer bei erfolgreicher Anmeldung mit Principals durch Autorisierung versehen. Nun kann der Nutzer dementsprechend die EJB Methoden mit den entsprechenden Rollen nutzen, deren Rollen er vor kurzem über LoginContext zugeordnet bekam.
Soweit so gut. alles wunderbar oder nicht? :)

Jetzt kommt für mich die Frage, wie das mit den Schnittstellen bzw. WebServices geregelt wird, die ebenfalls die gesicherte EJB nutzen wollen. Wie autentifizieren und autorisieren die sich über JAAS oder gegenüber die EJB?
Ich meine, dass wir keinen Nutzer haben, sondern das es eine andere Applikation / Client ist, die auf die EJB zugreifen möchste. Die Applikation ist nicht auf demselben Server, sondern ganz woanders.

Welche Möglichkeiten gibt es? Habe so onkel Google gefragt und die Standard Docs von Sun bringen mir auch nciht weiter, wie ich das Problem löse, dass sich andere Apps für die EJB Authentifizieren.
 
Dein Client muss sich halt auch gegenüber der Serveranwendung authorisieren. Dementsprechen musst du, genauso wie du die Authentifizierung über ein Webfrontend nach aussen trägst, diese auch über den Webservice nach aussen tragen (e.g. ein AuthenticationService o.ä.).

Nebenbei: ist JAAS gesetzt? Soweit wie ich bisher damit gearbeitet hab, ist das Ding ein Graus. Schonmal Spring Security aka Acegi angeschaut?

http://acegisecurity.org/

Hier gibts nen detaillierte detaillierten Vergleich:

http://www.java-forum-stuttgart.de/jfs/2007/folien/A6.pdf

Gruß
Ollie
 
Zurück