Je dois accéder au principal du client (nom d'utilisateur) dans une méthode ejb. Je ne veux pas l'ajouter en paramètre. Essayé de les ajouter à l'objet Contexte comme;Accès au client principal à l'intérieur d'une méthode ejb
prop.add(Context.SECURITY_AUTHENTICATION,"user")
prop.add(Context.SECURITY_CREDENTIALS,"pass")
mais en essayant d'y accéder à l'intérieur de la méthode similaire; @Resource private SessionContext ctx;
public void someMethod() {
Principal principal = ctx.getCallerPrincipal();
//returns anonymous
toujours me donner l'utilisateur ennuyeux.
En travaillant sur weblogic, des pointeurs?
Merci
Steve pourriez-vous s'il vous plaît expliquer cette ligne, je vous serai vraiment reconnaissant 'Correction en définissant le nom d'utilisateur/mot de passe dans la recherche InitialContext dans le PrivilegedAction' –
Voir l'exemple 17-3 http://www.onjava.com /pub/a/onjava/excerpt/weblogic_chap17/index1.html?page=5. Il y a un point intéressant qui dit ne pas fournir les informations d'identification de l'utilisateur. J'ai eu un moment, mais quand j'ai testé, je n'ai pas pu accéder au principal dans l'EJB sans les avoir explicitement fournis dans InitialContext. Donc vous ajouteriez quelque chose comme les lignes que j'ai commentées plus haut dans l'exemple 17-3. HTH –
Merci, je l'ai compris, C'est un code spécifique à WebLogic, En fait, j'essayais d'accéder à un EJB fonctionnant sur Glassfish à partir de l'Application Standalone (à partir de avec Eclipse). J'ai réussi à authentifier le client, mais cette information n'est pas propagée à l'EJB. Il reste anonyme. Quoi qu'il en soit, merci beaucoup. –