Bonjour,

J'ai une question sur l'articulation des rôles entre plusieurs projets EJBs.
L'utilisation de RunAs me semble limitée dans le cas de l'utilisation suivante, et j'en appelle a vous pour connaître le meilleur design a adopter ...

La communication entre mes EJBs est la suivante :
- L'EJB Backoffice est dans un EAR et necessite le role EMPLOYEE
- Les EJBs Client 1,2 sont dans un autre EAR et necessitent le role CLIENT

EJB Backoffice [RoleAllowed(EMPLOYEE)]
^
|
EJB Client 1 [RoleAllowed(CLIENT)] [RunAs(EMPLOYEE)]
|
v
EJB Client 2 [RoleAllowed(CLIENT)]

Pour faire marcher ce design, je dois faire un RunAs(EMPLOYEE) sur Client 1 mais celui-ci étant affecté globalement, je n'ai plus le droit d'appeler Client 2.

Actuellement je suis obligé d'intercaler un adaptateur qui se contente de wrapper toutes les méthodes de Backoffice en rajoutant un RunAs. C'est une couche inutile et pénible a maintenir :

EJB Backoffice [RoleAllowed(EMPLOYEE)]
^
|
EJB BackOffice Adapter [RoleAllowed(CLIENT)] [RunAs(EMPLOYEE)]
^
|
EJB Client 1 [RoleAllowed(CLIENT)]
|
v
EJB Client 2 [RoleAllowed(CLIENT)]

Y-a t-il un meilleur design ? est-ce que RunAs est mal conçu comme je le pense ou est-ce que je l'utilise mal ?

Merci ...