Как внедрить сессионный компонент в пользовательский обработчик успеха входа в систему безопасности Spring - PullRequest
0 голосов
/ 30 июня 2011

Я не могу внедрить bean-компонент Spring в мой пользовательский обработчик успеха:

@Component
public class CustomSavedRequestAwareAuthenticationSuccessHandler extends SavedRequestAwareAuthenticationSuccessHandler {

    @Resource
    private SessionController sessionController;

    @Override
    public void onAuthenticationSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) throws ServletException, IOException {
        super.onAuthenticationSuccess(request, response, authentication);
        sessionController.setUtenteOnline();
    }

, который возвращает исключение нулевого указателя на sessionController.Заранее спасибо

1 Ответ

1 голос
/ 07 июля 2011

Ваш обработчик успеха, вероятно, является синглтоном, поэтому вы можете надежно вводить в него только синглтоны. Вы можете решить эту проблему, используя зависимые области . По сути, это вовлекает Spring, внедряющий одноэлементный динамический прокси, который управляет извлечением реального bean-компонента из области сеанса и делегированием ему вызовов.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...