Dependency Injection & Security

misiu

Grünschnabel
Hallo zusammen,

eine Frage zum Thema Dependency Injection, ich habe die Beans mit @RolesAllowed annotiert und verwende zur Zeit ein JNDI Lookup um im InitialContext Username und Passwort zu deklarieren. Wie kann ich dies umstellen um zukünftig per Dependency Injection (@EJB) auf die Stateless Beans zu zugreifen? Ist das überhaupt möglich oder muss ich beim klassischen Lookup bleiben?

Gruß

Jan
 
Hallo Ollie,

die Beans sehen wie folgt aus:

Code:
@Stateless
@SecurityDomain("DB")
@RolesAllowed( { "User" })
public class XyzBean implements XyzLocal {

}

Der InitialContext:

Code:
public static InitialContext getInitialContextUser() throws NamingException
{
	Properties env = new Properties();
	env.setProperty(Context.SECURITY_PRINCIPAL, "User");
	env.setProperty(Context.SECURITY_CREDENTIALS, "Pass");
	env.setProperty(Context.INITIAL_CONTEXT_FACTORY, "org.jboss.security.jndi.JndiLoginInitialContextFactory");

	return new InitialContext(env);
}

Das Lookup:

Code:
InitialContext ctx = LoginContext.getInitialContextUser();
XyzLocal xyzLocal = (XyzLocal) ctx.lookup("XyzLocal");

Ist es jetzt verständlicher?

Gruß

Jan
 
Ih versteh halt nicht, warum du dem Context den User mitgeben musst. Die Annotation an die Klassen zu nageln bewrikt ja nur, dass du sie nicht an jede Methode schreiben musst. Die Security wird also ergo nur bei einem Methodenaufruf überprüft. Es wird nicht verhindert, dass man nicht an die Beaninstanz kommt, wenn man nicht die Rechte hat. Das würde dir ja das ganze Konzept der Zustandslosigkeit kaputt machen.

Von daher sollte ein @EJB auch tun. Aber wie so oft bei solchen Fragen die Gegenfrage: warum probierst du es nicht einfach aus? ;)

REINHAUN!
 
Alles klar, ich hab`s grad ausprobiert und es funktioniert.
Mir war der Zusammenhang der Security-Annotations nicht so ganz bewusst. Ich habe jetzt ein @RunAs in der Webservice-Bean um die Methoden einer anderen Beaninstanz die mit @RolesAllowed annotiert ist benutzen zu können.

Danke für den Hinweis.

Grüße
 

Neue Beiträge

Zurück