показать полное имя пользователя и другие поля в заголовке jsp для аутентифицированного пользователя - PullRequest
2 голосов
/ 13 ноября 2011

то, что я хотел бы достичь, находится в нижней части заголовка, я хотел бы показать несколько полей для аутентифицированного пользователя,

поля, которые я хотел бы получить, это идентификатор, местоположение и полное имя этого пользователя

Я не уверен, как решить эту проблему

Заранее спасибо.

Ответы [ 2 ]

1 голос
/ 01 мая 2013

Я использовал Maven, поэтому мне пришлось добавить библиотеку taglibs, добавив это в pom.xml

<dependency>
    <groupId>org.springframework.security</groupId>
    <artifactId>spring-security-taglibs</artifactId>
    <version>3.1.3.RELEASE</version>
</dependency>

Тогда в моем jsp добавлено:

<%@ taglib prefix="sec" uri="http://www.springframework.org/security/tags" %>

И

<sec:authentication property="principal" />
0 голосов
/ 13 ноября 2011

Прошло довольно много времени с тех пор, как я в последний раз имел дело со Spring Security, но мне удалось найти это из старого проекта:

public static Object getPrincipal() 
{
    Authentication auth = SecurityContextHolder.getContext().getAuthentication();
    return auth == null ? null : auth.getPrincipal();
}

Я могу ошибаться, но я думаю, что «принципал», который это возвращает, - это объект, возвращенный вашей реализацией UserDetailsService, когда пользователь вошел в систему (вероятно, реализация UserDetails). Таким образом, вы можете получить информацию о пользователе с помощью этого метода, а затем передать ее на страницу jsp для рендеринга. Надеюсь, это поможет.

Редактировать: взглянул на документацию Spring Security, похоже, есть taglib , доступный для jsp , поэтому вы можете получить информацию непосредственно из Spring Security:

Этот тег разрешает доступ к текущему объекту аутентификации, хранящемуся в контекст безопасности. Это делает свойство объекта непосредственно в JSP. Так, например, если главное свойство Аутентификация является экземпляром объекта UserDetails Spring Security, тогда с помощью <sec:authentication property="principal.username" /> отобразить имя текущего пользователя.

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