J'ai une application existante écrite en SEAM qui utilise SEAM Security (http://docs.jboss.org/seam/2.1.1.GA/reference/en-US/html/security.html). Dans un EJB sans état, je pourrais trouver quelque chose comme ceci :
@In
Identity identity;
...
if(identity.hasRole("admin"))
throw new AuthException();
D'après ce que j'ai compris, Seam injecte l'objet Identity depuis le SessionContext de la servlet qui invoque l'EJB (cela se passe "en coulisses", puisque Seam n'utilise pas vraiment les servlets) et le supprime après l'appel. Est-ce correct ?
Est-il maintenant possible d'accéder à cet EJB depuis une autre servlet (dans ce cas, cette servlet est le côté serveur d'une application GWT) ? Dois-je "injecter" la bonne instance d'Identity ? Si je ne fais rien, Seam injecte une instance, mais ne corrèle pas correctement les sessions et les instances d'Identity (ainsi les instances d'Identity sont partagées entre les sessions et parfois les appels obtiennent de nouvelles instances, etc.)
Toute aide et tout conseil sont les bienvenus - merci !
La technologie : EJB3, Seam 2.1.2. Les servlets sont en fait le côté serveur d'une application GWT, bien que je ne pense pas que cela importe beaucoup. J'utilise JBoss 5.