Spring Security: проталкивание имени пользователя в модель - PullRequest
1 голос
/ 12 октября 2011

Это в основном вопрос о стиле или лучшей практике. Я хочу знать, как лучше передать имя пользователя переменным модели, доступным моим представлениям. Без написания этой части логики для каждого контроллера. Есть в основном три способа сделать это:

  1. Использование тегов безопасности весны: http://static.springsource.org/spring-security/site/docs/3.0.x/reference/taglibs.html

    Обратная сторона: «некоторые люди предпочитают сохранять как можно меньше логики в представлении». Согласен. Есть возражения?

  2. Реализация InterceptorHandler: http://static.springsource.org/spring/docs/3.0.x/spring-framework-reference/html/mvc.html#mvc-introduction

    Лучшая практика для получения имени пользователя - это, вероятно, SecurityContextHolder.getContext (). GetAuthentication (). После этого необходимо задать имя пользователя, вызвав httpServletRequest.getSession (). SetAttribute ("userName", userName);

    Это кажется неловким. Каким-то образом. Это ( вопрос )? Другая проблема заключается в том, что нужно начинать делать сопоставления обработчиков вручную, как в Spring 2.5, чтобы иметь возможность использовать перехватчики для отдельных контроллеров. Вопрос: это его плохо?

  3. Использование основного параметра и реализация абстрактного контроллера, т. Е. Использование аннотации @ModelAttribute (...) (не знаю другого метода из головы)

    Таким образом, вопрос - как ОТЛИЧНО вводить имя пользователя в модель?

Цель этого вопроса - прояснить мое понимание концепций безопасности Spring и узнать о передовых практиках, которые, я думаю, важны при запуске новых проектов.

...