dans notre application, nous utilisons JSF & EJB 3.0 (EclipseLink 2.0). Nous devons utiliser l'autorisation de proxy Oracle pour chaque connexion dans nos beans session sans état. Pour cela, nous devons obtenir un nom d'utilisateur DB pour se connecter via proxy. Le nom d'utilisateur de la base de données est construit à partir du nom d'utilisateur authentifié JSF par une règle.comment obtenir le nom d'utilisateur app JSF de bean session sans état
Voici un article sur le sujet http://blogs.oracle.com/olaf/2010/04/using_oracle_proxy_authenticat.html
Ainsi, lorsqu'un utilisateur authentifié appelle une méthode de bean géré JSF qui ce Tournons appelle une méthode de bean session son nom d'utilisateur doit être en quelque sorte passé à bean session.
À l'heure actuelle, j'ai deux solutions pas très bonnes: - passer le nom d'utilisateur en tant que paramètre dans chaque méthode de session bean (pas très soigné mais ça va marcher); - la solution de l'article ci-dessus: utiliser la variable membre de la classe session bean pour stocker le nom d'utilisateur (pas thread sûr et potentiellement dangereux)
P.S. J'ai trouvé une solution qui utilise des variables locales de thread: _http: //www.adam-bien.com/roller/abien/entry/how_to_pass_context_with Cela fonctionne très bien, mais il y a toujours un problème. J'ai besoin de mettre le nom d'utilisateur actuel dans chaque bean géré par session jsf avant chaque appel au bean session ejb car il doit être dans le même thread.
Merci beaucoup, Jörn. Votre solution me semble très nette. P.S. Pouvez-vous me dire quand SessionContext ne contiendra pas le nom d'utilisateur actuel de la couche Web? – Andrey