2012-02-15 3 views
0

В настоящее время я использую 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); 
    } 
} 

ответ

0

К сожалению, я не знаю достаточно о OWASP ESAPI, чтобы дать конкретный ответ, но вы можете иметь некоторые удачи, глядя в поддержку АОП Guice в , Вы можете перехватить все вызовы методов в классе и обеспечить любое поведение параллелизма, которое вам нравится.

http://code.google.com/p/google-guice/wiki/AOP

 Смежные вопросы

  • Нет связанных вопросов^_^