В настоящее время я использую Owasp ESAPI для управления аутентификацией в моем веб-приложении Java, и я вставляю Singleton MyAuthenticator с guice.injectMembers (this) , Я хотел бы отойти от этого подхода и использовать созданный guice объект Singleton-Scoped. Мне понравилась безопасность нитей ESAPI singleton и безопасность синглетов в целом, используя Double-Checked Locking, IODH Idiom или Bloom's Enum INSTANCE.Как создать объект с областью Singleton с потоком (Guice + Owasp ESAPI)
Что мне нужно сделать для моего Guicified Singleton Scope Authenticator, чтобы сделать его потокобезопасным, а также поле ThreadLocal, которое я использую, чтобы установить и установить текущего пользователя?
Я хотел бы, чтобы все приложение работало с инъекцией зависимостей, но не хочу, чтобы он прерывался при одновременном доступе к веб-приложениям. Любые предложения или общие ошибки?
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);
}
}