私は現在、Owasp ESAPIを使用してJava Webアプリケーションの認証を管理しています。私はguice.injectMembers(this)にSingleton MyAuthenticatorを注入しています。 。私はこのアプローチから離れ、Guiceによって作成されたSingleton Scopedオブジェクトを使用したいと思います。私は、Double-Checked Locking、IODH Idiom、またはBlochのEnum INSTANCEスタイルを使用して、ESAPIシングルトンのスレッド安全性、および一般的なシングルトンの安全性が好きです。スレッドセーフ(Guice + Owasp ESAPI)
Guicified Singleton-Scoped Authenticatorをスレッドセーフにするために必要なことと、現在のUserを取得および設定するために使用しているThreadLocalフィールドは何ですか?
私は、アプリケーション全体を依存性注入で動作させたいと思っていますが、Web-appの同時アクセスで中断させたくありません。どんな提案や共通の落とし穴?
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);
}
}