Bonjour à tous, je développe une application Web s'appuyant les frameworks Hibernate, Acegi et Icefaces...
J'utilise bien sur un système de logging pour s'authentifier...
Hors j'ai besoin dans mon application de STOCKER l'object User qui s'est loggué.
C'est pourquoi j'ai crée une classe :
J'initialise le ThreadLocal au moment de se logguer sans problème...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24 public class ThreadLocalUser { private static final ThreadLocal<User> name = new ThreadLocal<User> (); private static final ThreadLocal<LdapUserDetails> userDetailz = new ThreadLocal<LdapUserDetails>(); private ThreadLocalUser() { } public static User getUser() { return (User) name.get(); } public static void setUser(User user) { ThreadLocalUser.name.set(user); } public static LdapUserDetails getDetails() { return (LdapUserDetails) userDetailz.get(); } public static void setDetails(LdapUserDetails details) { ThreadLocalUser.userDetailz.set(details); } }
Mais ensuite lorsque, l'application se charge ou lorsque je navigue dedans soudainement le ThreadLocal devient null et je n'ai plus accès au User...
Quelqu'un pourrait-il m'éclairer??
Partager