tutorials.de Buch-Aktion 05/2012
ERLEDIGT
NEIN
ANTWORTEN
4
ZUGRIFFE
1086
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    misiu misiu ist offline Rookie
    Registriert seit
    May 2004
    Beiträge
    6
    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
     

  2. #2
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    Zitat Zitat von misiu Beitrag anzeigen
    ich ... verwende zur Zeit ein JNDI Lookup um im InitialContext Username und Passwort zu deklarieren.
    Kannst du das mal genauer ausführen. Ich verstehe ehrlich gesagt nicht wirklich, was Authentifizierungsinformationen in einem JNDI zu suchen haben

    Gruß
    Ollie
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  3. #3
    misiu misiu ist offline Rookie
    Registriert seit
    May 2004
    Beiträge
    6
    Hallo Ollie,

    die Beans sehen wie folgt aus:

    Code :
    1
    2
    3
    4
    5
    6
    
    @Stateless
    @SecurityDomain("DB")
    @RolesAllowed( { "User" })
    public class XyzBean implements XyzLocal {
     
    }

    Der InitialContext:

    Code :
    1
    2
    3
    4
    5
    6
    7
    8
    9
    
    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 :
    1
    2
    
    InitialContext ctx = LoginContext.getInitialContextUser();
    XyzLocal xyzLocal = (XyzLocal) ctx.lookup("XyzLocal");

    Ist es jetzt verständlicher?

    Gruß

    Jan
     

  4. #4
    Avatar von Oliver Gierke
    Oliver Gierke Oliver Gierke ist offline Mitglied Rubin
    Registriert seit
    Dec 2003
    Ort
    Mannheim
    Beiträge
    1.457
    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!
     
    In theory, there is no difference between theory and practice. In practice, there is!

    www.olivergierke.de

  5. #5
    misiu misiu ist offline Rookie
    Registriert seit
    May 2004
    Beiträge
    6
    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
     

Ähnliche Themen

  1. Dependency Injection Frameworks für .Net
    Von Thomas Darimont im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 18.01.10, 19:11
  2. Antworten: 0
    Letzter Beitrag: 21.04.09, 13:54
  3. Spring Dependency Injection - XML oder Annotations?
    Von DarthShader im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 5
    Letzter Beitrag: 22.09.08, 19:07
  4. Dependency Injection liefert null
    Von ma_ria im Forum Enterprise Java (JEE, J2EE, Spring & Co.)
    Antworten: 1
    Letzter Beitrag: 18.04.08, 11:04
  5. Beispiel zu Microsofts Dependency Injection Framework Unity
    Von Thomas Darimont im Forum .NET Café
    Antworten: 0
    Letzter Beitrag: 27.02.08, 15:00