Я использую Spring MVC и Spring версию безопасности 3.0.6.RELEASE. Какой самый простой способ получить имя пользователя в моем JSP? Или даже просто, зарегистрирован ли пользователь? Я могу представить пару способов:
1. Использование сценария
Используя такой скриптлет, чтобы определить, зарегистрирован ли пользователь:
<%=org.springframework.security.core.context.SecurityContextHolder.getContext()
.getAuthentication().getPrincipal().equals("anonymousUser")
? "false":"true"%>
Я не поклонник использования сценариев, хотя, и я хочу использовать это в тегах <c:if>
, которые требуют вернуть его в качестве атрибута страницы.
2. Использование SecurityContextHolder
Я мог бы снова использовать SecurityContextHolder из моего @Controller
и поместить его в модель. Мне нужно это на каждой странице, поэтому мне не нужно добавлять эту логику в каждый из моих контроллеров.
Я подозреваю, что есть более чистый способ сделать это...