我目前使用Owasp ESAPI来管理我的Java Web应用程序中的身份验证,并且我正在使用guice.injectMembers(this)注入Singleton MyAuthenticator。 。我想退出这种方法并使用guice创建的Singleton-Scoped对象。我喜欢使用Double-Checked Locking,IODH Idiom或Bloch的Enum INSTANCE风格来保证ESAPI单例的线程安全性,以及一般单例的安全性。如何使一个Singleton范围对象线程安全(Guice + Owasp ESAPI)
什么我需要做的,我Guicified singleton类型验证器,使其线程安全的,以及我用来获取和设置我的当前用户ThreadLocal的领域?
我想让整个应用程序都使用依赖注入,但不希望它在Web应用程序并发访问时中断。任何建议或常见陷阱?
ThreadLocal的对象,我使用看起来像下面的代码:
private final ThreadLocalUser currentUser = new ThreadLocalUser();
private class ThreadLocalUser extends InheritableThreadLocal<User> {
@Override
public User initialValue() {
return User.ANONYMOUS;
}
public User getUser() {
return super.get();
}
public void setUser(User newUser) {
super.set(newUser);
}
}